Do While False
Bei der heutigen Arbeit beschrieb einer meiner Kollegen den Use-Case für do while (false). Die Person, mit der er sprach, fand das albern und so einfach, wenn Aussagen viel besser wären. Wir verbrachten dann die Hälfte unseres Tages damit, darüber zu diskutieren, wie wir etwas Äquivalentes schreiben können zu:
do
{
//some code that should always execute...
if ( condition )
{
//do some stuff
break;
}
//some code that should execute if condition is not true
if ( condition2 )
{
//do some more stuff
break;
}
//further code that should not execute if condition or condition2 are true
}
while(false);
Dies ist eine Redewendung, die häufig in c vorkommt. Ihr Programm sollte abhängig von den Bedingungen die gleiche Ausgabe wie der folgende Pseudocode erzeugen.
do
{
result += "A";
if ( C1)
{
result += "B";
break;
}
result += "C"
if ( C2 )
{
result += "D";
break;
}
result += "E";
}
while(false);
print(result);
Daher könnte die Eingabe sein:
1. C1 = true, C2 = true
2. C1 = true, C2 = false
3. C1 = false, C2 = true
4. C1 = false, C2 = false
und die Ausgabe sollte sein:
1. "AB"
2. "AB"
3. "ACD"
4. "ACE"
Dies ist Code-Golf, daher werden die Antworten nach Bytes beurteilt. Standardlücken sind verboten.
Ja, dies ist eine einfache, aber wir werden hoffentlich einige kreative Antworten finden. Ich hoffe, dass die Einfachheit die Menschen dazu ermutigt, Sprachen zu verwenden, mit denen sie weniger vertraut sind.
return result
anstelle von break
. Dann erhalten Sie auch die Vorteile der Wiederverwendbarkeit und der Vereinfachung des Anrufcodes. Aber vielleicht fehlt mir etwas.
goto
verwenden, goto
ist schlechte Form :)
do{}while(false)
sind Makros. Ein einfaches if
genügt nicht, weil es schlecht mit der else
Umgebung interagiert , die vorhanden sein kann. Ohne Makro können Sie auch das do
und entfernen while
.