Zábava s Javou - Nakreslete diamant
Nedávno jsem našel zajímavou žádost studenta Java na jednom z fór, které jsem četl. Jeho třída byla požádána, aby použil smyčku for, aby vytáhl diamant z hvězdiček (*). Měl správné a funkční řešení, ale byl označen, protože bylo příliš komplikované a mělo několik smyček. Student požádal o návrhy na jednodušší způsoby, jak dosáhnout stejného výsledku. Myslel jsem, že to byl zajímavý problém, a rozhodl se to vyzkoušet. Můj program je níže (nebo si můžete stáhnout jeho kopii zde.) To jasně není produkční kód - pro jednu věc, zatímco miluji jednoduchost operátora?: Snažím se ho nepoužívat ve výrobním kódu, protože mnoho programátoři zjistili, že je obtížnější číst a porozumět. Nemluvě o tom, že tento kód bude porušen, pokud max_width se mění na číslo větší než 46. Je to však příklad poměrně kompaktní a logické metody, jak dosáhnout požadovaného výsledku. Můžete dělat lépe? Podejte zprávu na našem fóru.

/*
 * diamonds.java
 *
 * Vytvořeno 4. června 2007, 23:39 odp
 */

/**
 *
 * @autor Julie Baumler
 */
diamanty veřejné třídy {

/ ** Vytvoří novou instanci diamantů * /
veřejné diamanty () {
}

/**
* @param argumentuje argumenty příkazového řádku
*/
public static void main (String [] args) {
int max_width = 9; // # chars wide, aby se diamant
int width = max_width% 2 == 0? max_width / 2: max_width / 2 +1;
String stars = "************************************************ ";
Řetězcové mezery = "";
pro (int i = 1; i <(šířka * 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í žádost:
Pinimo. "Pomozte mi s javou (sic)." Online publikování. Týden od 13. května 2007. Diskuse v jazyce Java (Fórum). 4. června 2007.

Video Návody: Im actually having... FUN? In MINECRAFT (hacked) - Part 2 (Smět 2024).