मेरे सोचने के तरीके के लिए, लूप के लिए एक ज्ञात या निर्धारित सीमा से अधिक का उपयोग किया जाता है।
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
जो समतुल्य है (i की एक तरफ):
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
दूसरे शब्दों में, for
लूप आमतौर पर उपयोग किए जाने वाले while
निर्माण के लिए एक (अत्यधिक उपयोगी) सिंटैक्टिक चीनी है ।
हालाँकि, मैं for(;;)
वेब पर बहुत सारे निर्माण देख रहा हूँ जो कार्यात्मक रूप से इसके समकक्ष हैंwhile(true)
इसके लिए तर्क क्या है? लूप के लिए अनंत को लूप के लिए अनंत पर क्यों पसंद किया जाएगा?
// मैंने एक जावा पाठ्यपुस्तक भी देखी जो लूप्स का उपयोग नहीं करती थी! इस तरह के राक्षसी निर्माण के लिए अग्रणी:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
while
और for
यहाँ और प्रश्न नहीं बदलेगा। while(true)
और for(;;)
इसका मतलब वही है। आप स्पष्ट रूप से के लिए एक मजबूत प्राथमिकता है while
, दूसरों के लिए एक समान रूप से मजबूत प्राथमिकता हो सकती है for
। यह कहना असंभव है कि एक दूसरे की तुलना में अधिक सही है।
for(;;)
भ्रमित नहीं हूँ । यह एक मानक C मुहावरा है, जिसे आप K & R (2e) के खंड 3.5 में प्रलेखित करेंगे। मैं समझता हूं कि आपको यह पसंद नहीं है; आपको यह समझना चाहिए कि अन्य स्पष्ट रूप से इसे पसंद करते हैं (अन्यथा आप इसे कभी नहीं देखेंगे)। यह सी के अलावा अन्य भाषाओं में कम या ज्यादा स्वीकार्य हो सकता है; आपने इस भाषा-अज्ञेय को टैग किया है जो केवल एक निश्चित उत्तर के प्रतिपुष्टि को कम करता है। फिर से, मैंने बंद करने के लिए मतदान किया क्योंकि क्यू रचनात्मक नहीं है; अगर मुझे बुरा लगा तो मैं बंद करने के अलावा या उसके बजाय आक्रामक के रूप में झंडा लगाऊंगा। बस इतना ही।
wheeeeeeee { ... }