2009-03-30 4 views
8

मैं केवल यह एक अनंत लूप मान सकता हूं।लूप के लिए सी # क्या करता है जब सभी अभिव्यक्तियां गायब होती हैं। उदाहरण के लिए (;;) {}

क्या मैं लूप में तीनों में से किसी भी अभिव्यक्ति को छोड़ सकता हूं? छोड़े जाने पर प्रत्येक के लिए कोई डिफ़ॉल्ट है?

उत्तर

5

यह वास्तव में एक अनंत लूप है।

हुड के तहत संकलक/जिटर इसे एक सरल जेएमपी ऑपरेशन (प्रभावी ढंग से) अनुकूलित करेगा।

while (true) 
{ 
} 

(कि यह भी दूर अनुकूलित है, के बाद से (सही) थोड़ी देर अभिव्यक्ति का हिस्सा आम तौर पर तुलना किसी प्रकार की आवश्यकता है, लेकिन इस मामले को छोड़कर, वहाँ है:

यह प्रभावी ढंग से की तरह ही है तुलना करने के लिए कुछ नहीं। बस लूपिंग पर रखें!)

1

बस सी और सी ++ की तरह आप तीनों में से किसी एक या तीनों को छोड़ सकते हैं।

15

हां, यह एक अनंत लूप है।

उदाहरण:

for (; ;) { } (उर्फ: केकड़ा)

while (true) { }

do { } while (true)

4

हां, यह एक अनंत लूप है। आप तीनों में से किसी भी अभिव्यक्ति को छोड़ सकते हैं, हालांकि मेरे अनुभव में यह आमतौर पर पहला या सभी 3.

0

यह एक अनंत लूप है :)।

2

कोई चूक नहीं है। कुछ भी शुरू नहीं किया गया है, कुछ भी बढ़ता नहीं है और पूरा होने के लिए कोई परीक्षण नहीं है।

3

यह एक असीमित पाश है। प्रभावी रूप से, यह वही है:

while (true) 
{ 
} 
2

पहले और तीसरे भाग के लिए कोई डिफ़ॉल्ट नहीं है (वे कुछ भी डिफ़ॉल्ट नहीं हैं और यह काम करेगा)। सशर्त अभिव्यक्ति के लिए डिफ़ॉल्ट true है जो for(;;) प्रभावी रूप से एक अनंत लूप बना देगा। (यदि डिफ़ॉल्ट false होना चाहिए, तो ऐसा निर्माण करना बेकार होगा)।

3

for (; ;) { } अनंत लूप है, तो आप सही हैं।

यदि आप इसका उपयोग करना चाहते हैं, तो आपको अपने लूप बॉडी में कुछ स्थिति डालना होगा, ताकि वह लूप से बाहर निकल सके।

for (; ;) 
{ 
    if (conditionTrue) 
     break; 
    else 
     continue; 
} 
1

Microsoft's C# Programmer's Reference का कहना है:

बयान के लिए की अभिव्यक्ति के सभी वैकल्पिक हैं; उदाहरण के लिए, निम्नलिखित कथन का उपयोग अनंत लूप लिखने के लिए किया जाता है:

for (;;) { 
    ... 
} 
संबंधित मुद्दे