डू एज़ फ़ाल्स
आज काम पर मेरे एक सहकर्मी (झूठे) करते समय उपयोग के मामले का वर्णन कर रहे थे। वह जिस व्यक्ति से बात कर रहा था, वह सोच रहा था कि यह मूर्खतापूर्ण है और यह सरल है कि यदि कथन ज्यादा बेहतर होंगे। फिर हमने अपने दिन का आधा समय बर्बाद करने के लिए आगे बढ़ कर सबसे अच्छा तरीका लिखा:
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
।