Nedavno sam na jednom od foruma koje sam pročitao pronašao zanimljiv zahtjev Java učenika. Od razreda se tražilo da pomoću petlje izvuče dijamante iz zvijezda (*). Imao je ispravno i ispravno rješenje, ali označen je jer je pretjerano komplicirano i sadrži nekoliko petlji. Učenik je tražio prijedloge o lakšim načinima postizanja istog rezultata. Mislio sam da je to zanimljiv problem i odlučio sam se oprobati u tome. Moj je program ispod (ili kopiju možete preuzeti ovdje.) To očito nije proizvodni kod - za jednu stvar, dok volim jednostavnost operatora ?:, pokušavam ga ne koristiti u proizvodnom kodu jer mnogi programeri otkrivaju da to otežava čitanje i razumijevanje. Da ne spominjemo, ovaj će se kôd pokvariti ako
MAX_WIDTH mijenja se na broj veći od 46. Ali to je primjer prilično kompaktne i logične metode za postizanje željenog rezultata. Možete li bolje? Prijavi na našem forumu.
/*
* dijamanti.java
*
* Napravljeno 4. lipnja 2007. u 23:39
*/
/**
*
* @author Julie Baumler
*/
dijamanti javne klase {
/ ** Stvara novu instancu dijamanata * /
javni dijamanti () {
}
/**
* @param argumentira argumente naredbenog retka
*/
javni statički void main (String [] args) {
int max_width = 9; // broj znakova širok za izradu dijamanta
int width = max_width% 2 == 0? max_width / 2: max_ širina / 2 +1;
String stars = "************************************************** „;
Razmakni nizovi = "";
za (int i = 1; i <(širina * 2); i ++) {
System.out.print (space.substring (0, (i <širina? Širina -i: i% širina)));
System.out.println (stars.substring (0,2 * (i <= širina? I: širina- (i% širina)) - 1));
}
}
}
Izvorni zahtjev:
Pinimo. "Pomozi mi s javom (sic)." Online objavljivanje. Tjedan 13. svibnja 2007. Java rasprava (forum). 4. lipnja 2007.
Upute Video: OVAKAV TRIK NIKADA U ŽIVOTU NISTE VIDJELI!!! (Svibanj 2024).