offSchoolবেটা

তথ্য ও যোগাযোগ প্রযুক্তি · অধ্যায় ৬ · টপিক ৯

break ও continue স্টেটমেন্ট

পড়ার নোট

লুপ সাধারণত শর্ত মিথ্যা না হওয়া পর্যন্ত একই কাজ বারবার করে। কিন্তু মাঝপথে থামতে বা কোনো একটি বার বাদ দিতে হলে দুটি স্টেটমেন্ট ব্যবহার করা হয়: break ও continue। দুটিই লুপের ভেতরে থাকে এবং সাধারণত if বা elif এর শর্তের সঙ্গে ব্যবহৃত হয়; শর্ত সত্য হলে কার্যকর হয়, মিথ্যা হলে উপেক্ষিত হয়।

break স্টেটমেন্ট

লুপের ভেতরে break পেলে লুপ সেখানেই কাজ শেষ করে বেরিয়ে যায় এবং লুপের পরের স্টেটমেন্ট চলে। চলন্ত গাড়িতে ব্রেক কষলে যেমন গাড়ি থামে, তেমনি লুপও থামে।

for i in range(0, 10):
 if i == 5:
 break
 print(i)

ফলাফল 0 থেকে 4; i যখন 5 হয়, তখন লুপ বন্ধ হয়। while লুপেও একই নিয়ম। ধরো, 1, 2, 3,... যোগ করতে করতে যোগফল 20 ছাড়ালেই থামতে চাই:

total = 0
n = 1
while n <= 10:
 total = total + n
 if total > 20:
 break
 n = n + 1
print(n, total)

ধাপে ধাপে যোগফল 1, 3, 6, 10, 15, 21। n=6n=6 হলে যোগফল 21 হয়, যা 20 এর বেশি; তাই লুপ থামে এবং 6 21 দেখায়।

নেস্টেড লুপে break শুধু যে লুপের ভেতরে আছে সেটিকেই থামায়, বাইরের লুপ চলতে থাকে:

for i in range(1, 4):
 for j in range(1, 4):
 if j == 2:
 break
 print(i, j)

এখানে ফলাফল 1 1, 2 1, 3 1।

continue স্টেটমেন্ট

continue পেলে লুপের বাকি অংশ বাদ দিয়ে প্রোগ্রাম পয়েন্টার লুপের শুরুতে, অর্থাৎ পরের বারে চলে যায়। লুপ শেষ হয় না, শুধু ওই বারের কাজ বাদ যায়।

for num in range(1, 11):
 if num == 4:
 continue
 print(num, end=" ")

ফলাফল 1 2 3 5 6 7 8 9 10; শুধু 4 বাদ গেছে।

সাধারণ ভুল: while লুপে কাউন্টার বাড়ানোর আগেই continue বসানো। নিচের প্রোগ্রামে n = n + 1 আগে আছে বলে এটি ঠিকভাবে 1, 3, 5 দেখায়। যদি কাউন্টার বাড়ানোর লাইনটি continue এর পরে থাকত, তাহলে n=0n=0 অবস্থায় continue বারবার চলত, nn কখনো বাড়ত না এবং লুপ অসীম হয়ে যেত।

n = 0
while n < 6:
 n = n + 1
 if n % 2 == 0:
 continue
 print(n)

মনে রাখো: break পুরো লুপ থেকে বেরিয়ে যায়, আর continue শুধু বর্তমান বারের বাকি কাজ বাদ দিয়ে পরের বারে যায়।

২০২৬ সালের NCTB পাঠ্যবই অনুসরণ করে লেখা।

চালিয়ে দেখো

এই টপিকের পার্থক্য

অনুশীলনের প্রশ্ন

  1. নিচের কোডের আউটপুট কী?

    for i in range(1, 8):
        if i % 3 == 0:
            continue
        print(i, end=" ")
    
    1. ক

      ১ ২

    2. খ

      ৩ ৬

    3. গ

      ১ ২ ৪ ৫ ৭ ৮

    4. ঘ

      ১ ২ ৪ ৫ ৭

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    ঘ) ১ ২ ৪ ৫ ৭

    1. range(1, 8) দেয় ১ থেকে ৭ (৮ বাদ)। যখন i % 3 == 0 (অর্থাৎ ৩ ও ৬), continue চলে এবং ওই পাক বাদ যায়, কিন্তু লুপ শেষ হয় না।
    2. তাই ৩ ও ৬ বাদে বাকিগুলো প্রিন্ট হয়: 1 2 4 5 7। break হলে 1 2 প্রিন্ট হয়ে লুপ থামত। (python৩-এ চালিয়ে যাচাই করা হয়েছে।)
  2. প্রোগ্রামটি নির্বাহ (run) করলে আউটপুট কত হবে?

    1. ক

      ৯

    2. খ

      ১৫

    3. গ

      ১৬

    4. ঘ

      ২৫

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    গ) ১৬

    1. লুপটিতে বিজোড় সংখ্যাগুলোর জন্য total-এর মান ক্রমান্বয়ে যোগ হয়: 11, 1+3=41 + 3 = 4, 4+5=94 + 5 = 9 এবং 9+7=169 + 7 = 16।
    1+3+5+7=161 + 3 + 5 + 7 = 16
    1. যখন n = 7, তখন total-এর মান ১৬ হওয়ায় শর্ত total > 15 সত্য হয় এবং break স্টেটমেন্টের কারণে লুপ তাৎক্ষণিকভাবে বন্ধ হয়ে যায়।
    2. ফলে লুপের পরবর্তী পুনরাবৃত্তিগুলো আর চলে না এবং ১৬ মুদ্রিত হয়।

এই টপিক নিয়ে প্রশ্ন আছে?

মেন্টরকে বাংলায় বা ইংরেজিতে জিজ্ঞেস করো, বা খাতার ছবি দাও। সিমুলেশন চালিয়ে বুঝিয়ে দেবে।

মেন্টরকে জিজ্ঞেস করো