Sto programmando in Java da diversi anni, ma sono appena tornato a scuola per ottenere una laurea formale. Sono stato piuttosto sorpreso di apprendere che, durante il mio ultimo incarico, ho perso punti per l'utilizzo di un loop come quello sotto.
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
Ora per il mio test sto solo cercando l'input della console, ma mi è stato detto che questo tipo di loop è scoraggiato perché usare breakè simile a goto, semplicemente non lo facciamo.
Comprendo appieno le insidie di gotosuo cugino Java break:labele ho il buon senso di non usarle. Mi rendo anche conto che un programma più completo fornirebbe altri mezzi di evasione, per esempio per terminare il programma, ma non è stato questo il motivo per cui il mio professore ha citato, quindi ...
Cosa c'è che non va do-while(true)?
breakè probabilmente ben intenzionato, ma in realtà frainteso. Forse puoi educare il tuo professore su questo;) Nella mia esperienza i professori non sanno molto del mestiere della programmazione.
do {} while (true)sia equivalente while(true) {}e quest'ultimo è di gran lunga la forma più convenzionale e molto più chiara.
break, dovrebbe provare a programmare in una lingua senza di essa. Non ci vogliono troppi loop prima che tu lo desideri!