2010-01-10 10 views

उत्तर

19

देखें यह कोई प्रारंभिक मूल्य या शर्तों के साथ एक पाश है, तो यह हमेशा के लिए जाना होगा,

while (true) 
{ 
    // body... 
} 

के लिए इसी तरह आप एक break; कथन का उपयोग करने के लिए लूप से बाहर प्राप्त करने की आवश्यकता होगी।

+7

या एक वापसी। या एक अपवाद (ऐसा नहीं है कि आपको ऐसा करना चाहिए)। –

+1

यह सभी सी भाषाओं के साथ भी मान्य है। –

+0

सी में, यह इस तरह होगा (1) {....} – t0mm13b

5

यह एक अनंत लूप का कारण बनता है। MSDN

4

यह शरीर को हमेशा के लिए दोहराता है।

IL_0001: br.s  IL_0005 
IL_0003: nop   
IL_0004: nop   
IL_0005: ldc.i4.1  
IL_0006: stloc.0  
IL_0007: br.s  IL_0003 

LINQPad एक बहुत ही अच्छी छोटी उपयोगिता आप इस तरह सवालों का पता लगाने की सुविधा देता है:

यहाँ disassembly है। Linqpad चलाएं, भाषा ड्रॉपडाउन को "सी # कथन" पर सेट करें, अपने कोड स्निपेट में डालें, रन क्लिक करें, आउटपुट विंडो के ऊपर "आईएल" बटन पर क्लिक करें। यदि आप आईएल असेंबली नहीं जानते हैं, तो बस प्रत्येक ऑपोड और एक अंग्रेजी विवरण पॉप-अप पर होवर करें। इस विशिष्ट उदाहरण के लिए, आपको परिणाम बटन देखने के लिए स्टॉप पर क्लिक करना होगा, क्योंकि यह उदाहरण हमेशा के लिए loops।

+0

linqpad लिंक के लिए धन्यवाद। * बहुत * शांत लग रहा है। – Ben

12

इस तरह एक पाश:

i = 0; 
while (i < 4) { 
    ... 
    i++; 
} 

तो, इस तरह एक पाश:

for (;;) { ... } 

के लिए एक छोटा रूप है:

for (i = 0; i < 4; i++) { ... } 

रूप में ही है

for (;true;) { ... } 

; 
while (true) { 
    ... 
    ; 
} 

यानी:

तो यह रूप में एक ही हो जाता है प्रारंभिकरण और संशोधन वैकल्पिक हैं, और जब स्थिति छोड़ी जाती है तो यह केवल true का मूल्यांकन करती है।

संबंधित मुद्दे