1. लूप की तुलना करना: forबनामwhile

एक whileलूप का उपयोग कहीं भी किया जा सकता है एक बयान या बयानों के समूह को कई बार प्रदर्शन करने की आवश्यकता होती है। लेकिन सभी संभावित परिदृश्यों में से एक हाइलाइट करने लायक है।

हम उस स्थिति के बारे में बात कर रहे हैं जब प्रोग्रामर (प्रोग्राम का निर्माता) पहले से जानता है कि लूप को कितनी बार निष्पादित किया जाना चाहिए। 1यह आमतौर पर एक विशेष काउंटर चर घोषित करके और फिर लूप के प्रत्येक पुनरावृत्ति के साथ चर को बढ़ाकर (या घटाकर) नियंत्रित किया जाता है।

ऐसा लगता है कि सब कुछ वैसा ही काम कर रहा है जैसा उसे करना चाहिए, लेकिन यह बहुत सुविधाजनक नहीं है। लूप से पहले, हम काउंटर वेरिएबल की प्रारंभिक वैल्यू सेट करते हैं। फिर हालत में हम जांचते हैं कि क्या यह पहले से ही अंतिम मूल्य पर पहुंच गया है। लेकिन हम आमतौर पर लूप बॉडी के बिल्कुल अंत में मान बदलते हैं।

और क्या होगा अगर पाश का शरीर बड़ा है? या अगर हमारे पास कई नेस्टेड लूप हैं? सामान्य तौर पर, इन मामलों में काउंटर वेरिएबल्स के बारे में यह सारी जानकारी एक ही स्थान पर एकत्रित करना वांछनीय है। और इसीलिए हमारे पास forजावा में लूप है। यह बहुत जटिल भी नहीं दिखता है:

for (statement 1; condition; statement 2)
{
   block of statements
}

एक whileलूप में कोष्ठकों में केवल एक शर्त होती है, लेकिन एक forलूप दो कथनों को जोड़ता है, जिन्हें अर्धविरामों द्वारा अलग किया जाता है।

वास्तविकता जितना लगता है उससे कहीं अधिक सरल है: संकलक एक forलूप को एक साधारण लूप में whileइस तरह परिवर्तित करता है:

statement 1;
while (condition)
{
   block of statements
   statement 2;
}

या बेहतर अभी तक, इसे एक उदाहरण के साथ प्रदर्शित करते हैं। नीचे दो कोड स्निपेट समान हैं।

विकल्प 1 विकल्प 2
for (int i = 0; i < 20; i++)
{
   System.out.println(i);
}
int i = 0;
while (i < 20)
{
   System.out.println(i);
   i++;
}

iहमने काउंटर वेरिएबल से संबंधित सभी कोड को एक जगह इकट्ठा किया ।

लूप में for, स्टेटमेंट 1 को केवल एक बार निष्पादित किया जाता है, लूप के शुरू होने से पहले। इसे दूसरे कोड स्निपेट में स्पष्ट रूप से देखा जा सकता है

कथन 2 को लूप के शरीर के समान ही निष्पादित किया जाता है, और हर बार लूप के पूरे शरीर को निष्पादित करने के बाद इसे निष्पादित किया जाता है


2. जहां forलूप का प्रयोग किया जाता है

लूप forशायद जावा में सबसे अधिक इस्तेमाल किया जाने वाला लूप है। whileइसका उपयोग हर जगह किया जाता है, प्रोग्रामर के लिए यह लूप की तुलना में अधिक स्पष्ट और सुविधाजनक है। वस्तुतः किसी भी लूप को लूप whileमें बदला जा सकता है ।for

उदाहरण:

घुमाव के दौरान पाश के लिए
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
for (int i = 3; i >= 0; i--)
{
   System.out.println(i);
}
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
for (int i = 0; i < 3; i++)
{
   System.out.println(i);
}
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
for (boolean isExit = false; !isExit; )
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
while (true)
   System.out.println("C");
for (; true; )
   System.out.println("C");
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}
for (; true; )
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}

पिछले उदाहरण पर ध्यान दें। लूप काउंटर के साथ काम करने के बयान गायब हैं। कोई काउंटर नहीं है और कोई बयान नहीं है।

एक लूप में for, जावा आपको "काउंटर को इनिशियलाइज़ करने के लिए स्टेटमेंट" और "काउंटर को अपडेट करने के लिए स्टेटमेंट" को छोड़ देता है। यहां तक ​​कि लूप कंडीशन को परिभाषित करने वाले एक्सप्रेशन को भी छोड़ा जा सकता है।



3. forलूप का उपयोग करने की बारीकियां

forलूप और breakऔर continueकथनों का उपयोग करने के बारे में एक महत्वपूर्ण बिंदु ।

लूप में एक breakस्टेटमेंट लूप forकी तरह ही काम करता है while- यह लूप को तुरंत समाप्त कर देता है। एक continueबयान लूप बॉडी को छोड़ देता है, लेकिन नहीं statement 2(जो लूप काउंटर को बदलता है)।

आइए एक और नज़र डालते हैं कि कैसे forऔर whileलूप संबंधित हैं।

for (statement 1; condition; statement 2)
{
   block of statements
}
statement 1;
while (condition)
{
   block of statements
   statement 2;
}

यदि किसी स्टेटमेंट को continueforलूप में निष्पादित किया जाता है , तो स्टेटमेंट के बाकी ब्लॉक को छोड़ दिया जाता है, लेकिन स्टेटमेंट 2 ( लूप के काउंटर वेरिएबल के साथ काम करने वाला ) अभी भी निष्पादित होता है।for

7 से विभाज्य संख्याओं को छोड़ कर अपने उदाहरण पर वापस आते हैं।

यह कोड हमेशा के लिए लूप हो जाएगा यह कोड ठीक काम करेगा
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
   i++;
}
for (int i = 1; i <= 20; i++)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
}

लूप का उपयोग करने वाला कोड whileकाम नहीं करेगा - i कभी भी 7 से अधिक नहीं होगा। लेकिन लूप वाला कोड forठीक काम करेगा।



4. छोरों की तुलना: जावा बनाम पास्कल

वैसे पास्कल का भी एक Forलूप होता है। सामान्य तौर पर, अनिवार्य रूप से प्रत्येक प्रोग्रामिंग भाषा में एक होता है। लेकिन पास्कल में यह अति स्पष्ट है। उदाहरण:

पास्कल जावा
For i := 1 to 10 do
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i++)
{
   System.out.println(i);
}
For i := 1 to 10 do step 2
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i = i + 2)
{
   System.out.println(i);
}
For i := 10 downto 0 do step 2
Begin
   Writeln(i);
End;
for (int i = 10; i >= 0; i = i - 2)
{
   System.out.println(i);
}