چه زمانی از حلقه while به جای for استفاده می‌شود

خلاصه
1404/09/23

انتخاب بین حلقه‌های `while` و `for` در برنامه‌نویسی به شرایط و نوع تکراری که می‌خواهید انجام دهید بستگی دارد. به طور کلی: **از حلقه `for` استفاده کنید:** * **وقتی تعداد تکر

چه زمانی از حلقه while به جای for استفاده می‌شود

انتخاب بین حلقه‌های `while` و `for` در برنامه‌نویسی به شرایط و نوع تکراری که می‌خواهید انجام دهید بستگی دارد. به طور کلی:

**از حلقه `for` استفاده کنید:**

* **وقتی تعداد تکرار مشخص است:** اگر از قبل می‌دانید که چند بار باید یک بلوک کد را اجرا کنید (مثلاً، پردازش تمام عناصر یک لیست، تکرار یک بازه عددی مشخص)، حلقه `for` انتخاب بهتری است.
* **تکرار روی دنباله‌ها:** وقتی می‌خواهید روی یک دنباله (مانند لیست، تاپل، رشته) یا یک شیء تکرارپذیر (iterable) حرکت کنید، حلقه `for` به طور طبیعی با آن همخوانی دارد.
* **خوانایی و سادگی:** در مواردی که تعداد تکرار مشخص است، حلقه `for` معمولاً خواناتر و جمع‌وجورتر از حلقه `while` است.

**مثال:**

```python
# تکرار روی یک لیست
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)

# تکرار در یک بازه مشخص
for i in range(10):
print(i)
```

**از حلقه `while` استفاده کنید:**

* **وقتی تعداد تکرار نامشخص است:** اگر تعداد دفعاتی که باید یک بلوک کد را اجرا کنید از قبل مشخص نیست و به یک شرط بستگی دارد که در طول اجرای برنامه تغییر می‌کند، حلقه `while` مناسب‌تر است.
* **تکرار تا رسیدن به یک شرط:** وقتی می‌خواهید کد را تا زمانی که یک شرط خاص درست باشد اجرا کنید، حلقه `while` بهترین انتخاب است.
* **کنترل دقیق بر شرط تکرار:** حلقه `while` به شما کنترل بیشتری بر شرط توقف حلقه می‌دهد. می‌توانید شرط را بر اساس محاسبات پیچیده‌تر یا ورودی کاربر تنظیم کنید.

**مثال:**

```python
# دریافت ورودی از کاربر تا زمانی که عدد مثبت وارد کند
number = 0
while number <= 0:
number = int(input("لطفاً یک عدد مثبت وارد کنید: "))

# ادامه بازی تا زمانی که کاربر نخواهد ادامه دهد
play_again = "yes"
while play_again == "yes":
# کد بازی
play_again = input("آیا می‌خواهید دوباره بازی کنید؟ (yes/no): ")
```

**خلاصه:**

| ویژگی | حلقه `for` | حلقه `while` |
| --------------- | ------------------------------------------ | ------------------------------------------ |
| تعداد تکرار | مشخص یا قابل تعیین از روی دنباله | نامشخص، بر اساس شرط |
| مورد استفاده | تکرار روی دنباله‌ها، بازه‌ها، تکرار مشخص | تکرار تا رسیدن به شرط، تکرار نامشخص |
| خوانایی | معمولاً خواناتر برای تکرار مشخص | می‌تواند پیچیده‌تر باشد، اما انعطاف‌پذیرتر |

**نکات مهم:**

* **حلقه بی‌نهایت:** با حلقه `while` باید مراقب باشید که شرط توقف به درستی تنظیم شود، در غیر این صورت ممکن است به یک حلقه بی‌نهایت برسید که برنامه شما را قفل می‌کند.
* **قابلیت تعویض:** در بسیاری از موارد، می‌توانید از هر دو حلقه `for` و `while` برای رسیدن به یک هدف استفاده کنید. با این حال، انتخاب حلقه مناسب می‌تواند کد شما را خواناتر، کارآمدتر و آسان‌تر برای نگهداری کند.

با درک این تفاوت‌ها، می‌توانید بهترین حلقه را برای هر موقعیت خاص در برنامه خود انتخاب کنید.