1. लूपची तुलना करणे: forविwhile

लूप whileकुठेही वापरले जाऊ शकते जेथे विधान किंवा विधानांचा समूह अनेक वेळा करणे आवश्यक आहे. परंतु सर्व संभाव्य परिस्थितींमध्ये, एक हायलाइट करण्यासारखे आहे.

आम्ही त्या परिस्थितीबद्दल बोलत आहोत जेव्हा प्रोग्रामरला (प्रोग्रामचा निर्माता) लूप किती वेळा अंमलात आणावा हे आधीच माहित असते. 1हे सहसा स्पेशल काउंटर व्हेरिएबल घोषित करून आणि नंतर लूपच्या प्रत्येक पुनरावृत्तीसह व्हेरिएबल वाढवून (किंवा कमी करून) हाताळले जाते .

सर्व काही जसे पाहिजे तसे कार्य करते असे दिसते, परंतु ते फारसे सोयीचे नाही. लूपच्या आधी, आपण काउंटर व्हेरिएबलचे प्रारंभिक मूल्य सेट करतो. मग स्थितीत आम्ही ते आधीच अंतिम मूल्यापर्यंत पोहोचले आहे की नाही ते तपासतो. परंतु आम्ही सहसा लूप बॉडीच्या अगदी शेवटी मूल्य बदलतो.

आणि जर लूपचे शरीर मोठे असेल तर? किंवा आपल्याकडे अनेक नेस्टेड लूप असतील तर? सर्वसाधारणपणे, या प्रकरणांमध्ये काउंटर व्हेरिएबल्सची ही सर्व माहिती एकाच ठिकाणी गोळा करणे इष्ट आहे. आणि म्हणूनच आमच्याकडे forJava मध्ये लूप आहे. हे खूप क्लिष्ट देखील दिसत नाही:

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

लूपमध्ये whileकंसमध्ये फक्त एक अट असते, परंतु forलूप अर्धविरामाने विभक्त केलेली दोन विधाने जोडते.

वास्तविकता वाटते त्यापेक्षा सोपी आहे: कंपाइलर लूपला याप्रमाणे forसामान्य लूपमध्ये रूपांतरित करतो:while

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

किंवा अजून चांगले, हे उदाहरणासह दाखवू. खालील दोन कोड स्निपेट्स एकसारखे आहेत.

पर्याय 1 पर्याय २
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हा बहुधा Java मधील सर्वात जास्त वापरला जाणारा प्रकार आहे. हे सर्वत्र वापरले जाते, प्रोग्रामरसाठी ते लूपपेक्षा स्पष्ट आणि अधिक सोयीस्कर आहे 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, Java तुम्हाला "काउंटर सुरू करण्यासाठी स्टेटमेंट" आणि "काउंटर अपडेट करण्यासाठी स्टेटमेंट" वगळू देते. लूप स्थिती परिभाषित करणारी अभिव्यक्ती देखील वगळली जाऊ शकते.



for3. लूप वापरण्याच्या बारकावे

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;
}

जर एखादे continueविधान लूपमध्ये कार्यान्वित केले असेल for, तर विधानांचे उर्वरित ब्लॉक वगळले जाईल, परंतु विधान 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);
}