Es ist bereits, dass Code Geruch ist subjektiv erwähnt worden, das wahr ist, aber in diesem Fall gibt es ein einfaches Argument gegen while(true)
verwenden.
Sie verpassen eine Gelegenheit, in Ihrem Code ausdrucksstark zu sein. Betrachte:
while(true)
Was sagt dir das über den Code? wir wissen nichts anderes als potenziell dieser Code wird unbegrenzt laufen.
Nun betrachten:
while(inputIsNotEmpty)
sofort wissen, dass wir das Verfahren blockieren oder Anweisung ausgeführt werden soll, bis die Eingabe leer ist. Das wird dem Leser des Codes (meistens sich selbst) ein wenig Zeit ersparen, anstatt die Ausgangsbedingung aufzuspüren.
So würde ich vermeiden, while(true)
in diesem speziellen Fall zu verwenden.
do{
Console.Write("Please enter something ");
input = Console.ReadLine();
if (inputIsNotEmpty(input)) collection.Add(input);
} while (inputIsNotEmpty(input);
...
bool inputIsNotEmpty(string input) => !String.IsNullOrEmpty(input);
Code-Geruch ist subjektiv, und Standards sind zu viele zur Auswahl. Können Sie diese Frage in etwas umformulieren, das objektive Antworten bekommen kann? – hvd
Ja, ich werde das tun. – menteith