Sanaz Khalili
Sanaz Khalili
خواندن ۲ دقیقه·۳ سال پیش

دستور for else در زبان برنامه نویسی پایتون

به نام خدا

در زبان هایی مثل ++C ,C و جاوا اگر دستور else را بعد از حلقه ی for بنویسیم دستور اشتباهی را نوشته ایم اما در زبان پایتون از این ساختار عجیب می توانیم استفاده کنیم و با آن کد تمییزتری را خواهیم داشت. قبل از بررسی دستور for else بیایید نگاهی به دو دستور continue , break بیندازیم که از هر دوی آن ها در حلقه های while و for استفاده می شود. زمانی که در یک حلقه از break استفاده می کنیم به این معناست که اگر اجرای کدها به break منتهی شود، اجرای حلقه متوقف می شود. اما زمانی که اجرای کد در حلقه ای به دستور continue برسد به این معناست که از ادامه ی اجرای کدها بعد از continue صرف نظر می شود، شمارنده ی حلقه را افزایش می دهد و ادامه ی حلقه را پیش می گیرد. در شکل1 و 2 نمونه کدی از این دو دستور آمده است.

شکل1
شکل1
شکل2
شکل2

همانطور که در شکل1 مشخص است در حلقه ی for که به کاراکتر h می رسیم شرط برقرار است و دستور break اجرا می شود و قبل از اتمام حلقه، از حلقه خارج می شویم. اما در شکل2 زمانی که حلقه به کاراکتر h می رسد دستور continue را اجرا می کند که باعث می شود کدهای بعد از آن اجرا نشود و حلقه را از کارکتر بعدی در کلمه "reshteh" ادامه دهد.

مثالی از for else در شکل3 آمده است. این مثال این گونه است که اگر for به طور کامل اجرا شود دستور else نیز اجرا می شود.

شکل3
شکل3

اما در چه صورت else اجرا نمی شود؟ زمانی که داخل for یک دستور break داشته باشیم دو سناریو برای آن می توانیم تعریف کنیم:

1 -اگر for اجرا شود و در حین اجرای آن با break خاتمه پیدا کند در این صورت else اجرا نمی شود.

2 -اگر for به طور عادی خاتمه پیدا کند، بعد از اتمام آن، دستور else نیز اجرا می شود.

دو مثال در زیر برای دستور for else آمده است.

در شکل4 به دلیل اینکه for توسط break خاتمه پیدا کرده است دستور else اجرا نشده است.(سناریوی اول)

شکل4
شکل4

در شکل5 برنامه ای است که اول بودن یک عدد را بررسی می کند. در این برنامه زمانی که عددی، عدد اول باشد for کاملا اجرا می شود و به طور عادی خاتمه می یابد و در نهایت بعد از اتمام آن دستور else اجرا می شود.(سناریوی دوم)

شکل5
شکل5

در شکل 5 محدوده ی for else با رنگ قرمز و محدوده ی if else با رنگ نارنجی مشخص شده است.

for elsecontinuebreakpythonfor else python
https://github.com/sanazkhalili - https://www.kaggle.com/skhalili
شاید از این پست‌ها خوشتان بیاید