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 goto
suo cugino Java break:label
e 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!