در یک حلقه for یا while، دستور break میتواند با یک بخش else جفت شود. اگر حلقه بدون اجرای break تمام شود، بخش else اجرا میشود.
در یک حلقه for، بخش else پس از اتمام آخرین تکرار حلقه اجرا میشود، یعنی اگر break رخ نداده باشد.
در یک حلقه while، پس از کاذب شدن شرط حلقه اجرا میشود.
در هر نوع حلقه، بخش else اگر حقه توسط break خاتمه یافته باشد، اجرا نمیشود. البته، راههای دیگر خاتمه زودهنگام حلقه مانند return یا استثنا، نیز اجرای بخش else را رد میکنند.
این در حلقه for زیر نشان داده شده که عدد اولها را جستجو میکند:
>>> for n in range(2, 10): ... for x in range(2, n): ... if n % x == 0: ... print(n, 'equals', x, '*', n//x) ... break ... else: ... # حلقه بدون پیدا کردن مقسومعلیه گذشت ... print(n, 'is a prime number') ... 2 is a prime number 3 is a prime number 4 equals 2 * 2 5 is a prime number 6 equals 2 * 3 7 is a prime number 8 equals 2 * 4 9 equals 3 * 3
(بله، این کد صحیح است. دقیق نگاه کنید: بخش else متعلق به حلقه for است، نه دستور if.)
یک راه فکر کردن درباره بخش else این است که تصور کنید با if داخل حلقه جفت شده است. وقتی حلقه اجرا میشود، مجموعهای مانند if/if/if/else را اجرا میکند. if داخل حلقه است و چندین بار ملاقات میشود. اگر شرط هرگز درست نباشد، بخش else خارج از حلقه اجرا میشود.
وقتی با حلقه استفاده شود، بخش else بیشتر با بخش else دستور try شباهت دارد تا با آنچه در دستورات if میبینید: بخش else دستور try زمانی اجرا میشود که استثنایی رخ ندهد، و بخش else حلقه زمانی اجرا میشود که break رخ ندهد. برای اطلاعات بیشتر درباره دستور try و استثناها، «مدیریت استثناها» را ببینید.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://docs.python.org/3/tutorial