حلقه‌ها (Loops) یکی از مهم‌ترین ابزارهای برنامه‌نویسی هستند که به شما اجازه می‌دهند یک قطعه کد را بارها و بارها اجرا کنید تا زمانی که یک شرط مشخص برقرار باشد. این کار باعث صرفه‌جویی در زمان ⏳، کاهش خطاها ❌ و خوانایی بهتر کد 📖 می‌شود.

در اینجا دو نوع حلقه while را بررسی می‌کنیم:

  1. حلقه while 🔄
  2. حلقه do..while 🔁

۱. حلقه while در Kotlin 🌀

چیست و چطور کار می‌کند؟

حلقه while تا زمانی که شرط مشخص‌شده صحیح (true) باشد، کد داخلش را اجرا می‌کند.

ساختار کلی (Syntax):

while (شرط) {
  // کدهایی که باید اجرا شوند
}

💡 نکته: تا زمانی که شرط برقرار باشد، حلقه ادامه پیدا می‌کند.

مثال:

فرض کنید می‌خواهیم اعداد ۰ تا ۴ را چاپ کنیم:

var i = 0
while (i < 5) {
  println(i)  // چاپ مقدار i
  i++  // افزایش مقدار i
}

🔹 خروجی:

0
1
2
3
4

📌 توضیح کد:

  • مقدار i از ۰ شروع می‌شود.
  • تا زمانی که i < 5 باشد، مقدار i چاپ می‌شود.
  • در هر دور، مقدار i یک واحد زیاد می‌شود (i++).
  • وقتی i به ۵ برسد، شرط غلط (false) می‌شود و حلقه متوقف می‌شود.

⚠️ نکته مهم: اگر مقدار i را درون حلقه تغییر ندهید، حلقه بی‌نهایت اجرا می‌شود و برنامه شما کرش می‌کند! 🚨


۲. حلقه do..while در Kotlin 🔁

تفاوت با while

در حلقه do..while، کد حداقل یک بار اجرا می‌شود، حتی اگر شرط از ابتدا برقرار نباشد.

ساختار کلی:

do {
  // کدهایی که باید اجرا شوند
} while (شرط);

💡 نکته: در این نوع حلقه، ابتدا یک بار کد اجرا می‌شود، سپس شرط بررسی می‌شود.

مثال:

var i = 0
do {
  println(i)  // چاپ مقدار i
  i++  // افزایش مقدار i
} while (i < 5)

خروجی:

0
1
2
3
4

📌 توضیح کد:

  • ابتدا مقدار i چاپ می‌شود.
  • سپس مقدار i افزایش پیدا می‌کند.
  • در نهایت شرط بررسی می‌شود، و اگر برقرار باشد، حلقه تکرار می‌شود.

تفاوت while و do..while 🚀

حلقهبررسی شرطاجرای اولیهاستفاده معمول
whileقبل از اجرااگر شرط نادرست باشد، اجرا نمی‌شود.زمانی که نمی‌دانیم دقیقا چند بار باید اجرا شود.
do..whileبعد از اولین اجراحداقل یک بار اجرا می‌شود.زمانی که می‌خواهیم حداقل یک بار اجرا تضمین شود.

📌 مثال تفاوت:

var i = 10

while (i < 5) {
  println("این اجرا نمی‌شود ")
}

do {
  println("این اجرا می‌شود ")
} while (i < 5)

خروجی:

این اجرا می‌شود

⚡ چون در do..while اول کد اجرا می‌شود، پس حتی با شرط غلط هم یک‌بار اجرا می‌شود!


چالش برای شما 🚀

1. یک برنامه بنویسید که تمام اعداد زوج بین ۱ تا ۱۰ را با استفاده از while چاپ کند.
2. یک برنامه بنویسید که از کاربر یک عدد بگیرد و تا زمانی که عدد وارد شده مثبت باشد، آن را چاپ کند. از do..while استفاده کنید.