डू एज़ फ़ाल्स
आज काम पर मेरे एक सहकर्मी (झूठे) करते समय उपयोग के मामले का वर्णन कर रहे थे। वह जिस व्यक्ति से बात कर रहा था, वह सोच रहा था कि यह मूर्खतापूर्ण है और यह सरल है कि यदि कथन ज्यादा बेहतर होंगे। फिर हमने अपने दिन का आधा समय बर्बाद करने के लिए आगे बढ़ कर सबसे अच्छा तरीका लिखा:
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 में पाया जाता है। आपके प्रोग्राम को शर्तों के आधार पर नीचे दिए गए छद्म कोड के समान आउटपुट का उत्पादन करना चाहिए।
do
{
result += "A";
if ( C1)
{
result += "B";
break;
}
result += "C"
if ( C2 )
{
result += "D";
break;
}
result += "E";
}
while(false);
print(result);
इसलिए इनपुट हो सकता है:
1. C1 = true, C2 = true
2. C1 = true, C2 = false
3. C1 = false, C2 = true
4. C1 = false, C2 = false
और आउटपुट होना चाहिए:
1. "AB"
2. "AB"
3. "ACD"
4. "ACE"
यह कोड-गोल्फ है इसलिए उत्तर बाइट्स पर आंका जाएगा। मानक खामियों पर रोक लगाई जाती है।
हां यह एक सरल है, लेकिन उम्मीद है कि हम कुछ रचनात्मक जवाब देखेंगे, मुझे उम्मीद है कि सादगी लोगों को उन भाषाओं का उपयोग करने के लिए प्रोत्साहित करेगी जिनके साथ वे आश्वस्त हैं।
return resultस्थान पर एक विधि का उपयोग किया जाता है break। फिर आपको पुन: प्रयोज्य का बोनस मिलता है और कॉलिंग कोड को भी सरल बनाया जाता है। लेकिन शायद मुझे कुछ याद आ रहा है।
gotoक्योंकि प्रयोग gotoखराब रूप है :)
do{}while(false)वह मैक्रोज़ के अंदर है। एक साधारण ifपर्याप्त नहीं है, क्योंकि यह elseआसपास मौजूद बुरी तरह से बातचीत करता है । मैक्रो के बिना आप doऔर भी निकाल सकते हैं while।