Yanlış Yaparken Yapın
Bugün işteyken meslektaşlarımdan biri, kullanım sırasındaki kullanım durumunu açıklıyordu (yanlış). Konuşmakta olduğu kişi bunun aptalca olduğunu ve ifadelerin daha iyi olacağını düşünüyorsanız basit olduğunu düşündü. Daha sonra, eşdeğer bir şeyler yazmak için en iyi yolu tartışarak günün yarısını boşa harcadık:
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);
Bu oldukça sık c bulunan bir deyimdir. Programınız koşullara bağlı olarak aşağıdaki sözde kodla aynı çıktıyı üretmelidir.
do
{
result += "A";
if ( C1)
{
result += "B";
break;
}
result += "C"
if ( C2 )
{
result += "D";
break;
}
result += "E";
}
while(false);
print(result);
Bu nedenle girdi şöyle olabilir:
1. C1 = true, C2 = true
2. C1 = true, C2 = false
3. C1 = false, C2 = true
4. C1 = false, C2 = false
ve çıktı şöyle olmalıdır:
1. "AB"
2. "AB"
3. "ACD"
4. "ACE"
Bu kod-golf olduğundan cevaplar bayt olarak değerlendirilecektir. Standart boşluklar yasaklandı.
Evet, bu basit bir sorundur, ancak umarım bazı yaratıcı cevaplar göreceğiz, basitliğin insanları daha az güvendikleri dilleri kullanmaya teşvik edeceğini umuyorum.
return resultyerine break. Sonra yeniden kullanılabilirlik ve arama kodunu basitleştirmenin bonuslarını alıyorsunuz. Ama belki bir şeyleri özlüyorum.
gotokullanıyorlar çünkü gotokötü bir form kullanıyor :)
do{}while(false)makroların içinde. Bir basit ifyeterli değildir, çünkü elseetrafta bulunanlarla kötü etkileşime girer . Bir makro olmadan siz de kaldırabilir dove while.