Zábava s Java - Nakreslite diamant
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).