Ich programmiere seit einigen Jahren in Java, bin aber erst kürzlich zur Schule zurückgekehrt, um einen formalen Abschluss zu machen. Ich war ziemlich überrascht zu erfahren, dass ich bei meiner letzten Aufgabe Punkte verloren habe, weil ich eine Schleife wie die folgende verwendet habe.
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
Für meinen Test suche ich nur nach Konsoleneingaben, aber mir wurde gesagt, dass von dieser Art von Schleife abgeraten wird, da die Verwendung break
ähnlich ist goto
, wir tun es einfach nicht.
Ich verstehe die Fallstricke goto
und seinen Java-Cousin voll und ganz break:label
und habe den guten Sinn, sie nicht zu benutzen. Mir ist auch klar, dass ein vollständigeres Programm ein anderes Mittel zur Flucht bieten würde, zum Beispiel um das Programm zu beenden, aber das war kein Grund, den mein Professor angeführt hat, also ...
Was ist los mit do-while(true)
?
break
ist wahrscheinlich gut gemeint, wird aber tatsächlich missverstanden. Vielleicht können Sie Ihren Professor darüber unterrichten;) Nach meiner Erfahrung wissen Professoren nicht viel über das Handwerk des Programmierens.
do {} while (true)
äquivalent zu while(true) {}
und letztere bei weitem die konventionellere Form und viel klarer ist.
break
, sollte er versuchen, in einer Sprache ohne sie zu programmieren. Es dauert nicht zu viele Schleifen, bis Sie es wünschen!