Home › Hindi › break और continue Hindi में
break और continue — loop को रोकना बनाम एक बार छोड़ना
🌐 यह page Hindi में है · Read the English loops guide →
break बनाम continuefor-else clausenested loop में असरinfinite loop से बचाव
एक line में फर्क
break— पूरा loop बंद। बाकी iterations नहीं चलेंगी, loop के बाद का code चलेगा।continue— सिर्फ इस बार का बाकी हिस्सा छोड़ो, अगली iteration पर चले जाओ।
for n in [1, 2, 3, 4, 5]:
if n == 3:
break # यहीं पूरा loop खत्म
print(n, end=" ")
print("-> break") # 1 2 -> break
for n in [1, 2, 3, 4, 5]:
if n == 3:
continue # सिर्फ 3 छूटा, loop चलता रहा
print(n, end=" ")
print("-> continue") # 1 2 4 5 -> continue
याद रखने का आसान तरीका: break = बाहर निकलो, continue = आगे बढ़ो।
for-else — Python की अजीब पर काम की चीज़
Python में loop के साथ else लगता है, और यह तब चलता है जब loop बिना break के पूरा हो जाए। यानी else का मतलब है "कुछ मिला नहीं":
nums = [4, 8, 15]
for n in nums:
if n == 42:
print("मिल गया")
break
else:
print("42 नहीं मिला") # चलेगा, क्योंकि break नहीं लगा
# यही pattern prime check में बहुत साफ़ दिखता है
for n in range(2, 10):
for i in range(2, n):
if n % i == 0:
break
else:
print(n, "prime है") # सिर्फ तब जब कोई भाजक न मिला
यह उल्टा लगता है — else आमतौर पर if के साथ जुड़ा समझा जाता है। यहाँ याद रखो: loop-else = "loop बिना break के खत्म हुआ"।
असली ज़िंदगी के use
# 1. पहला match ढूँढकर रुक जाना
for user in users:
if user["email"] == target:
found = user
break # आगे ढूँढने की ज़रूरत नहीं
# 2. गलत या खाली rows छोड़ना
for line in open("data.csv", encoding="utf-8"):
line = line.strip()
if not line:
continue # खाली line — छोड़ो
process(line)
# 3. user से सही input तक पूछते रहना
while True:
raw = input("Age: ")
if not raw.isdigit():
print("सिर्फ number लिखो")
continue # दोबारा पूछो
break # सही input मिला — निकलो
age = int(raw)
# 4. limit तक ही process करना
count = 0
for item in huge_list:
if count >= 100:
break
process(item)
count += 1
ध्यान रहेगा example 4 के बारे में: जहाँ सिर्फ शुरुआती हिस्सा चाहिए, वहाँ loop से बेहतर slicing है — for item in huge_list[:100]।
Nested loop में असर
break और continue दोनों सिर्फ उसी loop पर असर डालते हैं जिसमें वे लिखे हैं:
for i in range(1, 4):
for j in range(1, 4):
if j == 2:
continue # अंदर वाले की यह iteration छूटी
print(i, j, end=" | ")
print()
# 1 1 | 1 3 |
# 2 1 | 2 3 |
# 3 1 | 3 3 |
for i in range(1, 4):
for j in range(1, 4):
if j == 2:
break # अंदर वाला पूरा रुका, बाहर वाला चलता रहा
print(i, j, end=" | ")
print()
# 1 1 |
# 2 1 |
# 3 1 |
दोनों loop से एक साथ निकलना हो तो सबसे साफ़ रास्ता है पूरा काम एक function में डालना और return कर देना — कोई flag variable नहीं चाहिए।
5 common गलतियाँ
while Trueमेंbreakभूल जाना — infinite loop। हरwhile Trueके लिए साफ़ दिखने वाला exit होना चाहिए।continueके बाद का code unreachable —continueके बाद उसी block में कुछ लिखना बेकार है, वह कभी नहीं चलेगा।- counter update करना भूल जाना —
continueलगाने पर अक्सरi += 1छूट जाता है और loop कभी खत्म नहीं होता। - गलत loop में
break— nested loop में break सिर्फ अंदर वाले को तोड़ता है। breakकी जगह flag का ज़रूरत से ज़्यादा इस्तेमाल —for-elseया function +returnअक्सर ज़्यादा साफ़ होता है।
i = 0
while i < 5:
if i == 2:
continue # i += 1 कभी नहीं चला — infinite loop!
print(i)
i += 1
🛠️ Practice करो (free, browser में)
पढ़ना काफी नहीं — यही bug खुद fix करके देखो। नीचे के problems browser में ही चलते हैं, कोई install नहीं, कोई login नहीं।
- break vs continue — दोनों का फर्क असली code में।
- else clause on a for loop — for-else कब चलता है।
अक्सर पूछे जाने वाले सवाल
break और continue में क्या अंतर है?
break पूरा loop बंद कर देता है और loop के बाद के code पर पहुँचा देता है। continue सिर्फ उस बार का बाकी हिस्सा छोड़कर अगली iteration शुरू कर देता है — loop चलता रहता है।
for loop के साथ else कब चलता है?
जब loop बिना break के पूरा हो जाए। इसलिए loop-else का मतलब है 'कुछ मिला नहीं'। जैसे ही break लगता है, else ब्लॉक skip हो जाता है। Prime check और search दोनों में यह pattern बहुत साफ़ बैठता है।
while True में infinite loop से कैसे बचें?
हर उस रास्ते पर break रखो जहाँ loop को खत्म होना चाहिए, और अगर counter use कर रहे हो तो continue से पहले उसे बढ़ा दें — नहीं तो update वाली line कभी नहीं चलेगी और loop कभी खत्म नहीं होगा।
Nested loop से दोनों जगह से एक साथ कैसे निकलें?
सबसे साफ़ तरीका: पूरा काम एक function में डालो और return कर दो। दूसरे रास्ते हैं एक found flag रखकर बाहर वाले loop में if लगाना, या for-else का use करना। break अकेले सिर्फ अंदर वाले loop को तोड़ता है।