किसी लॉजिक को बार-बार चलाने के लिए लूप का उपयोग किया जाता है।
सबसे आम दो तरह हैं while loop (जो अनिश्चित बार चलता है) और for loop (जो निश्चित, यानी गिनी हुई बार चलता है)।
एक for each लूप भी है, जो आगे के किसी कॉन्सेप्ट में आएगा।
for loop एक हेडर और एक कोड ब्लॉक से मिलता है। उस कोड ब्लॉक में लूप के अंदर का कोड कर्ली ब्रैकेट में लपेटकर रखा जाता है।
हेडर में 3 हिस्से होते हैं, जिन्हें सेमीकोलन ; से अलग किया जाता है: इनिट स्टेटमेंट, शर्त, और एक और एक्सप्रेशन।
इनमें से हर एक हिस्सा खाली हो सकता है।
for (init-statement; condition; expression) {
some_statement;
}
while loop अपने अंदर का कोड तब तक चलाता है, जब तक उसकी शर्त की जाँच सही रहती है।
नीचे दिया गया कोड दिखाता है कि एक for लूप को while लूप में कैसे बदला जाए।
init-statement;
while(condition) {
some_statement;
expression;
}
लूप के साथ काम करते समय अक्सर किसी काउंटर वेरिएबल में 1 जोड़ना या 1 घटाना पड़ता है।
यह इतना आम है कि इस काम के लिए खास ऑपरेटर हैं: ++ और --।
ये प्रीफिक्स और पोस्टफिक्स, दो रूपों में आते हैं। प्रीफिक्स रूप स्टेटमेंट में इस्तेमाल होने से पहले वेरिएबल को बदल देता है, और पोस्टफिक्स रूप उसके बाद। ज़्यादातर मौकों पर आपको प्रीफिक्स रूप ही चाहिए होगा।
int a{3};
int b{--a};
// b is 2, a is now 2
int c{a++};
// c is 2, a is now 3
इनिट वाला हिस्सा आम तौर पर एक काउंटर वेरिएबल तैयार करता है। शर्त वाला हिस्सा जाँचता है कि लूप जारी रहना चाहिए या रुकना। अंतिम हिस्सा आम तौर पर हर दोहराव के अंत में काउंटर बढ़ा देता है।
int sum{0};
for (int i{1}; i < 10; ++i) {
sum += i;
}
यह लूप 1 से 9 तक की संख्याओं को जोड़ता है (9 भी शामिल है)।
लूप के अंदर के कोड में आप break कीवर्ड का इस्तेमाल करके लूप को पूरी तरह रोक सकते हैं:
int sum{2};
while(true) {
sum *= 2;
if (sum > 1000)
break;
}
// sum is now 1024
इसके उलट, continue कीवर्ड सिर्फ मौजूदा इटरेशन को रोकता है और अगले के साथ आगे बढ़ जाता है:
int equal_sum{0};
for (int i{1}; i < 7; ++i) {
if (n%2 == 1) {
continue;
}
equal_sum += i;
}
// equal_sum is now 12
ध्यान दें: लूप के लॉजिक को समझना आम तौर पर तब आसान होता है, जब
breakऔरcontinueका इस्तेमाल कम से कम किया जाए या पूरी तरह टाल दिया जाए।