CodeGym /पाठ्यक्रम /All lectures for HI purposes /एक लूप को बाधित करना

एक लूप को बाधित करना

All lectures for HI purposes
स्तर 1 , सबक 1074
उपलब्ध

1. breakकथन

आइए पिछले पाठ से एक उदाहरण देखें:

कोड व्याख्या
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
जब तक आप प्रवेश नहीं करते, कार्यक्रम कीबोर्ड से एक पंक्ति पढ़ेगा "exit"

exitशब्द दर्ज होने तक प्रोग्राम कंसोल से लाइनें पढ़ता है । यदि आप इस शब्द को दर्ज करते हैं, तो isExit चर बन जाता है true, लूप की स्थिति होगी , और लूप समाप्त हो जाएगा।"!isExitfalse

जावा का एक विशेष breakकथन है जो आपको ऐसे तर्क को सरल बनाने देता है। यदि किसी breakस्टेटमेंट को लूप के अंदर निष्पादित किया जाता है, तो लूप तुरंत समाप्त हो जाता है। प्रोग्राम लूप के बाद आने वाले स्टेटमेंट को एक्जीक्यूट करना शुरू कर देगा। कथन बहुत संक्षिप्त है:

break;

breakयहां बताया गया है कि जिस उदाहरण पर हमने अभी चर्चा की है, उसे फिर से लिखने के लिए आप कथन का उपयोग कैसे कर सकते हैं :

कोड व्याख्या
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
जब तक आप प्रवेश नहीं करते, कार्यक्रम कीबोर्ड से एक पंक्ति पढ़ेगा "exit"


2. बयान जारी रखें

लेकिन breakकेवल जावा स्टेटमेंट नहीं है जो आपको लूप के व्यवहार को नियंत्रित करने देता है। जावा का भी continueबयान है। यदि आप continueलूप के अंदर एक स्टेटमेंट निष्पादित करते हैं, तो लूप का वर्तमान पुनरावृत्ति समय से पहले समाप्त हो जाएगा।

लूप बॉडी को एक बार निष्पादित करने को लूप का पुनरावृत्ति कहा जाता है। कथन continueलूप के वर्तमान पुनरावृत्ति को बाधित करता है, लेकिन breakकथन के विपरीत, यह स्वयं लूप को समाप्त नहीं करता है। कथन भी संक्षिप्त है:

continue;

continueयदि हम कुछ स्थितियों में लूप बॉडी के निष्पादन को 'छोड़ना' चाहते हैं तो लूप में स्टेटमेंट सुपर सुविधाजनक है ।

कार्य: हम एक ऐसा प्रोग्राम लिखना चाहते हैं जो संख्याओं को प्रिंट करता है 1लेकिन 20उन संख्याओं को छोड़ देता है जो विभाज्य हैं 7। यह कोड ऐसा दिखाई दे सकता है।

कोड व्याख्या
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
कार्यक्रम से संख्या प्रदर्शित करता 1है 20। यदि संख्या से विभाज्य है 7(भाग का शेष भाग 7है 0), तो हम संख्या प्रदर्शित करना छोड़ देते हैं।

दरअसल, यह कोड काम नहीं करेगा , क्योंकि iनंबर पर हमेशा अटका रहेगा 7। आखिरकार, continueकथन दो अन्य कथनों को छोड़ देता है: System.out.println(i)और i++। नतीजतन, एक बार जब हम मूल्य पर पहुंच जाते हैं 7, तो चर iबदलना बंद हो जाएगा और हम एक अनंत लूप में होंगे।

इस बहुत ही सामान्य गलती को दर्शाने के उद्देश्य से हमने कोड को इस तरह से लिखा था। हम इसे कैसे ठीक करें?

यहां दो विकल्प हैं:

विकल्प 1:i क्रियान्वित करने से पहले बदलें continue, लेकिन बाद मेंi % 7

विकल्प 2:i लूप की शुरुआत में हमेशा वृद्धि करें । लेकिन तब iका प्रारंभिक मूल्य होना चाहिए 0

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

टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION