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).