किसी भी एक मेरे लिए यह निर्देश समझाने चाहेंगे करें: इन निशान के (;;)जावा: क्या है "(;;) के लिए"
मैं सामना करना पड़ा कई प्रकार के लिए (जैसे फेसबुक के ajax कोड में और जावा की समवर्ती सामग्री में)।
किसी भी एक मेरे लिए यह निर्देश समझाने चाहेंगे करें: इन निशान के (;;)जावा: क्या है "(;;) के लिए"
मैं सामना करना पड़ा कई प्रकार के लिए (जैसे फेसबुक के ajax कोड में और जावा की समवर्ती सामग्री में)।
एक अनंत लूप।
लूप के लिए तीन हिस्सों में से प्रत्येक (for(x; y; z)
) वैकल्पिक है।
तो तुम यह कर सकते हैं:
int i = 0;
for (; i < 20; ++i)
और यह पूरी तरह से वैध है, या
for (int i = 0; i < 20;) { ++i; }
या
for (int i = 0; ; ++i) { if (i < 20) { break; } }
और वे सभी वैध कर रहे हैं।
आप for(;;)
के साथ सभी तीन हिस्सों को भी छोड़ सकते हैं।
इसलिए मूल रूप से एक अंतहीन पाश। यह लूप बॉडी में जो कुछ भी कहता है, वह करता है, बार-बार
संदर्भ के लिए जावा भाषा विशिष्टता §14.14.1.2 http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.1.2 देखें: "यदि _Expression_ मौजूद नहीं है, या यह मौजूद है और इसके मूल्यांकन से उत्पन्न मूल्य (किसी भी संभावित अनबॉक्सिंग सहित) 'सत्य' है, फिर निहित * स्टेटमेंट * निष्पादित किया गया है। " –
यह उत्तर" कोई सवाल बहुत आसान नहीं है "की उत्कृष्टता साबित करता है। :) –
यह एक अंतहीन पाश है। for
कथन के विनिर्देश के लिए, here देखें।
अनंत लूप है यही कारण है, के लिए
while(true)
{
...
}
यह एक अनंत लूप समान, (न के बराबर) से बाहर निकलें शर्त के रूप में देख रहा है झूठी कभी नहीं होगा। ,
for (int x=0; ; x++) { }
बिल्कुल while (true)
रूप में एक ही है, हालांकि थोड़ा कम पठनीय IMHO:
किसी भी एक निकास शर्त के बिना अनंत हो जाएगा।
यह वास्तव में एक अनंत लूप है। लेकिन जावा में आपको वास्तव में for (;;)
से अधिक पसंद करना चाहिए क्योंकि यह अधिक पठनीय है (जिसे आप शायद पहले ही महसूस कर सकते हैं)। संकलक वैसे भी इसे अनुकूलित करेगा। जावास्क्रिप्ट में एक कंपाइलर और HTTP बाइट्स पर हर बाइट का कोई मतलब नहीं है, यही कारण है कि for (;;)
को प्राथमिकता दी जाती है। यह कुछ पात्रों (बाइट्स) बचाता है।
'जबकि (सत्य)' – whiskeysierra
की पठनीयता के लिए +1 मुझे '(;;) 'अधिक पठनीय होने के लिए मिलता है। – jalf
पाश के लिए एक वाक्य विन्यास
for (init-stmt; condition; next-stmt) {
}
तो यह बस एक कोई प्रारंभिक बयान, अगले बयान या शर्त के साथ पाश के लिए है। बाहर निकलने की स्थिति की अनुपस्थिति इसे अनंत बनाती है।
# कभी परिभाषित करें ;; (कभी) // के लिए ... – Andrew