← Back

Home › Hindi › break और continue Hindi में

break और continue — loop को रोकना बनाम एक बार छोड़ना

🌐 यह page Hindi में है · Read the English loops guide →

break बनाम continuefor-else clausenested loop में असरinfinite loop से बचाव

एक line में फर्क

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 गलतियाँ

  1. while True में break भूल जाना — infinite loop। हर while True के लिए साफ़ दिखने वाला exit होना चाहिए।
  2. continue के बाद का code unreachable — continue के बाद उसी block में कुछ लिखना बेकार है, वह कभी नहीं चलेगा।
  3. counter update करना भूल जाना — continue लगाने पर अक्सर i += 1 छूट जाता है और loop कभी खत्म नहीं होता।
  4. गलत loop में break — nested loop में break सिर्फ अंदर वाले को तोड़ता है।
  5. 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 नहीं।

सारे free problems देखो →

अक्सर पूछे जाने वाले सवाल

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 को तोड़ता है।

आगे पढ़ो