Faire tandis que faux
Au travail aujourd'hui, un de mes collègues décrivait le cas d'utilisation de do while (false). La personne à qui il parlait a pensé que c'était ridicule et aussi simple que de simples déclarations. Nous avons ensuite passé la moitié de notre journée à discuter de la meilleure façon d’écrire quelque chose d’équivalent à:
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);
C’est un idiome qui se trouve assez souvent dans c. Votre programme devrait produire le même résultat que le pseudo-code ci-dessous en fonction des conditions.
do
{
result += "A";
if ( C1)
{
result += "B";
break;
}
result += "C"
if ( C2 )
{
result += "D";
break;
}
result += "E";
}
while(false);
print(result);
Par conséquent, l'entrée pourrait être:
1. C1 = true, C2 = true
2. C1 = true, C2 = false
3. C1 = false, C2 = true
4. C1 = false, C2 = false
et le résultat devrait être:
1. "AB"
2. "AB"
3. "ACD"
4. "ACE"
C'est du code-golf, donc les réponses seront jugées sur des octets. Les échappatoires standard sont interdites.
Oui, c’est simple, mais j'espère que nous trouverons des réponses créatives. J'espère que la simplicité encouragera les gens à utiliser des langues avec lesquelles ils ont moins confiance.
return result
à la place de break
. Ensuite, vous bénéficiez des bonus de réutilisation et de simplification du code d'appel. Mais peut-être que je manque quelque chose.
goto
utiliser parce que leur goto
forme est mauvaise :)
do{}while(false)
est dans les macros. Un simple if
ne suffit pas, car il interagit mal avec des else
objets potentiellement présents. Sans macro, vous pouvez également supprimer le do
et while
.