Nedávno som našiel zaujímavú požiadavku študenta Java na jednom z fór, ktoré som čítal. Jeho trieda bola požiadaná, aby použil slučku for, aby vytiahol diamant z hviezd (*). Mal správne a funkčné riešenie, ale bolo poznačené, pretože bolo príliš komplikované a malo niekoľko slučiek. Študent požiadal o návrhy na jednoduchšie spôsoby, ako dosiahnuť rovnaký výsledok. Myslel som, že to bol zaujímavý problém, a rozhodol som sa to vyskúšať. Môj program je nižšie (alebo si môžete stiahnuť jeho kópiu tu.) To jednoznačne nie je výrobný kód - pre jednu vec, zatiaľ čo milujem jednoduchosť operátora?: Snažím sa ho používať vo výrobnom kóde, pretože veľa programátori zistili, že je sťažené čítanie a porozumenie. Nehovoriac o tom, že tento kód bude zlomený, ak
MAX_WIDTH sa mení na číslo väčšie ako 46. Je to však príklad pomerne kompaktnej a logickej metódy na dosiahnutie požadovaného výsledku. Dokážete robiť lepšie? Podajte správu na našom fóre.
/*
* diamonds.java
*
* Vytvorené 4. júna 2007, 23:39 PM
*/
/**
*
* @autor Julie Baumler
*/
diamanty verejnej triedy {
/ ** Vytvorí novú inštanciu diamantov * /
verejné diamanty () {
}
/**
* @param argumenty argumentov príkazového riadku
*/
public static void main (String [] args) {
int max_width = 9; // # chars wide, aby sa diamant
int width = max_width% 2 == 0? max_width / 2: max_width / 2 +1;
String stars = "************************************************* ";
Medzery pre reťazce = "";
pre (int i = 1; i <(šírka * 2); i ++) {
System.out.print (spaces.substring (0, (i
System.out.println (stars.substring (0,2 * (i <= width? I: width- (i% width)) - 1));
}
}
}
Pôvodná žiadosť:
Pinimo. "Pomôž mi s javou (sic)." Online vysielanie. Týždeň od 13. mája 2007. Diskusia v jazyku Java (Fórum). 4. júna 2007.
Video Návody: Im actually having... FUN? In MINECRAFT (hacked) - Part 2 (Smieť 2024).