شکستن حلقه و رد شدن از یک دور
اگر بخواهید حلقه پیش از False شدن سؤال تمام شود، break همین کار را میکند. سؤال میتواند هنوز True باشد. اگر بخواهید فقط بقیهٔ همین یک دور را ننویسید و دورهای بعدی بمانند، continue است. صفحهٔ while هیچکدام را نداشت و فقط تا شکست سؤال صبر میکرد. print("done") را همتراز while مینویسیم، پس بیرون حلقه است. بعد از break یک بار اجرا میشود، و وقتی حلقه خودش تمام شود هم یک بار اجرا میشود.
cups از 0 شروع میشود و سؤال cups < 5 است. هر دور اول عدد را مینویسد. وقتی عدد 2 است، break اجرا میشود. خط cups = cups + 1 زیر break است، پس در آن دور اجرا نمیشود. 2 هنوز از 5 کوچکتر است. سؤال رد نشده. حلقه با این حال تمام است.
cups = 0
while cups < 5:
print(cups)
if cups == 2:
break
cups = cups + 1
print("done")
روی صفحه 0، بعد 1، بعد 2، بعد done میآید. 3 و 4 نیستند. cups عدد 2 را دارد. همان 2 نوشته شده و حلقه پیش از جلو رفتن عدد رها شده است.
یک دور را رد کنید و در حلقه بمانید
continue فقط وقتی بیخطر است که عدد پیش از رد شدن جلو رفته باشد. وگرنه همان مقداری که میخواهید رد کنید ثابت میماند، سؤال True میماند، و حلقه تمام نمیشود. در این برنامه اولین خط داخل حلقه یکی به cups اضافه میکند. اگر عدد 2 شده باشد، continue فقط print همین دور را رد میکند. حلقه برمیگردد سراغ cups < 4. دور بعدی عدد را 3 میکند و 3 نوشته میشود.
cups = 0
while cups < 4:
cups = cups + 1
if cups == 2:
continue
print(cups)
print("done")
میبینید 1، بعد 3، بعد 4، بعد done. خط جاافتاده 2 است. done هست چون continue حلقه را رها نکرده. سؤال بعداً، خودش، رد شده و خط بیرونی یک بار اجرا شده است.
همان break، این بار پیش از print
break را بالای print بگذارید. دوری که به 2 میرسد پیش از هر نوشتنی رها میشود. done همچنان اجرا میشود، چون همتراز while است.
cups = 0
while cups < 5:
if cups == 2:
break
print(cups)
cups = cups + 1
print("done")
روی صفحه 0، بعد 1، بعد done میآید. cups باز هم 2 است، ولی این بار آن 2 نوشته نشده. تفاوت دو برنامه فقط جای break است.
اگر continue را بالای cups = cups + 1 بنویسید، رد شدن میتواند عدد را همانجا نگه دارد. cups روی مقداری میماند که قرار بود رد شود، سؤال True میماند، و حلقه تمام نمیشود. این چیدمان را اجرا نکنید. اول عدد را جلو ببرید. بعد تصمیم بگیرید این دور خطهای زیر continue را رد کند یا نه.
break و continue با حرف کوچکاند. Break یا Continue با حرف بزرگ نامی است که Python نمیشناسد و برنامه میایستد. صفحهٔ بعد به هر مورد شماره میدهد و دو فهرست را جفت میکند. از این دو کلمه استفاده نمیکند.
پیش از اجرا حساب کنید
- برنامهٔ اول مینویسد، بعد وقتی cups برابر 2 است break میکند. چه میآید، و بعد از آن cups چه عددی دارد؟
- برنامهٔ continue پیش از رد کردن یکی اضافه میکند. کدام عددها نوشته میشوند، و done میآید؟
- برنامهٔ سوم پیش از print از حلقه بیرون میآید. 2 روی صفحه هست؟
- continue را بالای cups = cups + 1 میبرید و شرط رد شدن هنوز برقرار است. حلقه تمام میشود؟
جایی که نتیجه عوض میشود
- بعد از نوشتن break هنوز منتظر رد شدن cups < 5 ماندن
- انتظار 3 و 4، در حالی که break روی 2 اجرا شده
- گذاشتن continue پیش از جلو رفتن عدد
- خطی را که زیر break است اجراشده حساب کردن
- نوشتن Break یا Continue با حرف بزرگ
یک جمع
break همان لحظه بیرون میآید. سؤال while میتواند هنوز True باشد. خط همتراز while اجرا میشود و خط زیر break اجرا نمیشود.
اگر break بعد از print باشد، 0 و 1 و 2 و بعد done را میبینید و cups روی 2 میماند. اگر break پیش از print باشد، 0 و 1 و بعد done را میبینید و cups باز هم 2 است.
continue فقط خطهای زیر خودش را، برای همین یک دور، رد میکند. وقتی عدد اول جلو رفته باشد، 1 و 3 و 4 و بعد done را میبینید و 2 در کار نیست.
اگر عدد جلو نرود، continue میتواند سؤال را True نگه دارد و حلقه تمام نمیشود.
صفحهٔ بعد به هر مورد شماره میدهد و دو فهرست را جفت میکند.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود