آموزش حلقه While در جاوا
حلقه while در جاوا برای تکرار بلوک کد تا زمانی که شرط true است استفاده میشود. ابتدا شرط بررسی میشود، سپس بدنه اجرا میگردد.
08 اردیبهشت 1405
لینک کوتاه
While Loop در جاوا چیست؟
حلقه while در جاوا یک ساختار کنترلی برای تکرار یک بلوک کد تا زمانی که یک شرط مشخص true باقی بماند، است.برخلاف حلقه for که تعداد دفعات تکرار از قبل مشخص است، حلقه while زمانی به کار میرود که تعداد دقیق تکرارها نامشخص بوده و خاتمه حلقه به یک شرط منطقی وابسته باشد.
// سادهترین مثال حلقه while که اعداد 1 تا 5 را چاپ میکند
int i = 1;
while (i <= 5) {
System.out.println("عدد: " + i);
i++;
}
در این مثال، متغیر i ابتدا مقدار 1 دارد. شرط i <= 5 بررسی میشود.
تا زمانی که این شرط true باشد، بدنه حلقه اجرا میشود.
در هر بار اجرا، مقدار i یک واحد افزایش مییابد.
وقتی i به 6 رسید، شرط false میشود و حلقه پایان مییابد.
حلقه While در Java چیست؟
حلقه while در جاوا یکی از پایهایترین ساختارهای تکرار است که ابتدا شرط را بررسی میکند و سپس در صورت true بودن، بدنه را اجرا مینماید.این ویژگی باعث میشود اگر شرط در ابتدا false باشد، بدنه حلقه حتی یک بار هم اجرا نشود.
ساختار کلی آن به صورت زیر است:
while (شرط) {
// بدنه حلقه - کدی که تا زمانی که شرط برقرار است اجرا میشود
}
بخش شرط باید یک عبارت boolean باشد (مانند x < 10 یا done == false).
تا زمانی که این شرط true ارزیابی شود، بدنه حلقه مرتباً اجرا میگردد.
برای جلوگیری از حلقه بینهایت، باید درون بدنه حلقه، تغییری ایجاد کنید که در نهایت شرط را false کند.
🚀 از صفر تا قهرمان جاوا، فقط با یک دوره!
به دنبال یه فرصت طلایی برای شروع برنامهنویسی میگردی؟
دوره آموزشی جاوا ما، همون چیزیه که نیاز داری!✨ چرا این دوره رو انتخاب میکنی؟
🎯 از مبتدی تا حرفهای
بدون پیشزمینه شروع میکنی و به یه برنامهنویس جاوا تبدیل میشی که بازار کار منتظرته!🛠 پروژهمحور و عملی
با انجام پروژههای واقعی، کدنویسی رو یاد میگیری، نه فقط تئوری!👨🏫 پشتیبانی همیشگی
هرجا گیر کنی، تیم پشتیبانی کنارته تا مشکلت حل بشه.🔓 دسترسی مادامالعمر
هر وقت خواستی به محتوا دسترسی داری، برای همیشه!
چگونه در Java از While Loop استفاده کنیم؟
برای استفاده از حلقه while در جاوا، باید چهار مرحله اساسی را رعایت کنید:مرحله اول: مقداردهی اولیه متغیر شرط
قبل از شروع حلقه، متغیرهایی که در شرط استفاده میشوند باید مقدار اولیه داشته باشند.مرحله دوم: نوشتن شرط
شرط را به گونهای بنویسید که تا زمانی که نیاز به ادامه دارید، true باشد.مرحله سوم: اجرای بدنه حلقه
کدهایی که باید تکرار شوند را درون بلوک {} قرار دهید.مرحله چهارم: بهروزرسانی متغیر شرط
در انتهای بدنه، مقدار متغیر شرط را تغییر دهید تا در نهایت شرط false شود.مثال عملی: خواندن اعداد از کاربر تا زمانی که عدد منفی وارد شود
import java.util.Scanner;
public class WhileExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = 0;
while (number >= 0) {
System.out.print("یک عدد وارد کنید (عدد منفی برای خروج): ");
number = scanner.nextInt();
if (number >= 0) {
System.out.println("شما وارد کردید: " + number);
}
}
System.out.println("برنامه پایان یافت.");
scanner.close();
}
}
در این مثال، حلقه تا زمانی ادامه مییابد که کاربر عدد منفی وارد نکند.
به محض وارد شدن عدد منفی، شرط number >= 0 false شده و حلقه خارج میشود.

فرق While و Do While در Java چیست؟
تفاوت اصلی بین حلقه while و حلقه do-while در زمان بررسی شرط است.-
حلقه while
ابتدا شرط را بررسی میکند، سپس اگر true بود بدنه را اجرا میکند.
بنابراین اگر شرط در ابتدا false باشد، بدنه هیچ بار اجرا نمیشود. -
حلقه do-while
ابتدا بدنه را یک بار اجرا میکند، سپس شرط را بررسی میکند.
بنابراین بدنه حداقل یک بار اجرا میشود، حتی اگر شرط false باشد.
مقایسه با مثال:
// مثال while - بدنه اجرا نمیشود
int x = 10;
while (x < 5) {
System.out.println("این خط چاپ نمیشود"); // اجرا نمیشود
}
// مثال do-while - بدنه یک بار اجرا میشود
int y = 10;
do {
System.out.println("این خط یک بار چاپ میشود"); // اجرا میشود
} while (y < 5);
مثال کاربردی برای do-while: نمایش منوی تکرار شونده
import java.util.Scanner;
public class DoWhileMenu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("1. ورود");
System.out.println("2. ثبت نام");
System.out.println("3. خروج");
System.out.print("انتخاب کنید: ");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("وارد شدید");
break;
case 2:
System.out.println("ثبت نام انجام شد");
break;
case 3:
System.out.println("خروج از برنامه");
break;
default:
System.out.println("انتخاب نامعتبر");
}
} while (choice != 3);
scanner.close();
}
}
در اینجا از do-while استفاده شده چون میخواهیم منو حداقل یک بار نمایش داده شود، بدون اینکه کاربر مجبور باشد ابتدا شرطی را برقرار کند.
چه زمانی از While Loop در Java استفاده کنیم؟
حلقه while در شرایط زیر مناسبترین انتخاب است:۱. زمانی که تعداد دفعات تکرار از قبل مشخص نیست
مثال: خواندن داده از یک فایل تا رسیدن به انتهای فایل.شما نمیدانید فایل چند خط دارد، بنابراین از while استفاده میکنید.
// خواندن خطوط یک فایل تا انتها
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
۲. زمانی که توقف حلقه به یک شرط منطقی وابسته است، نه شمارش
مثال: یک بازی که تا زمانی که جان کاربر تمام نشده ادامه دارد.int lives = 3;
while (lives > 0) {
// کاربر بازی میکند
// اگر اشتباه کند lives-- انجام میشود
}
۳. زمانی که میخواهید حلقه صفر بار هم ممکن است اجرا نشود
اگر سناریوی شما به گونهای است که ممکن است اصلاً نیازی به تکرار نباشد، while گزینه مناسبی است.مثلاً اعتبارسنجی ورودی که اگر ورودی از ابتدا معتبر بود، نیازی به تکرار نیست.
۴. پردازش ساختارهای داده پویا مانند درختان و لیستهای پیوندی
// پیمایش یک گره در لیست پیوندی
Node current = head;
while (current != null) {
System.out.println(current.data);
current = current.next;
}
۵. منتظر ماندن برای وقوع یک رویداد
// منتظر ماندن تا یک وضعیت خاص رخ دهد
boolean dataReady = false;
while (!dataReady) {
// بررسی وضعیت
Thread.sleep(1000); // یک ثانیه منتظر بمان
}

اشتباهات رایج در حلقه While
اشتباه اول: حلقه بینهایت ناخواسته
int i = 1;
while (i <= 5) {
System.out.println(i);
// فراموش کردن i++ باعث حلقه بینهایت میشود
}
اشتباه دوم: استفاده از عملگر انتساب به جای مقایسه
int x = 5;
while (x = 10) { // اشتباه: باید x == 10 باشد
// این کد کامپایل نمیشود یا رفتار اشتباه دارد
}
اشتباه سوم: نقطه ویرگول اضافی بعد از while
int i = 1;
while (i <= 5); { // نقطه ویرگول باعث میشود بدنه حلقه خالی باشد
System.out.println(i); // این خط فقط یک بار اجرا میشود
i++;
}
مثالهای عملی و پیشرفته
مثال ۱: محاسبه مجموع اعداد وارد شده توسط کاربر تا وارد کردن صفر
import java.util.Scanner;
public class SumUntilZero {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
int number;
System.out.println("اعداد را وارد کنید (برای پایان صفر وارد کنید):");
number = scanner.nextInt();
while (number != 0) {
sum += number;
number = scanner.nextInt();
}
System.out.println("مجموع اعداد: " + sum);
scanner.close();
}
}
مثال ۲: معکوس کردن یک عدد
public class ReverseNumber {
public static void main(String[] args) {
int number = 12345;
int reversed = 0;
int temp = number;
while (temp != 0) {
int digit = temp % 10;
reversed = reversed * 10 + digit;
temp /= 10;
}
System.out.println("عدد اصلی: " + number);
System.out.println("عدد معکوس: " + reversed);
}
}
مثال ۳: بررسی اول بودن یک عدد
public class PrimeCheck {
public static void main(String[] args) {
int number = 29;
boolean isPrime = true;
int divisor = 2;
if (number <= 1) {
isPrime = false;
}
while (divisor <= number / 2) {
if (number % divisor == 0) {
isPrime = false;
break;
}
divisor++;
}
if (isPrime) {
System.out.println(number + " یک عدد اول است");
} else {
System.out.println(number + " عدد اول نیست");
}
}
}
نتیجهگیری
حلقه while در جاوا یک ابزار قدرتمند برای موقعیتهایی است که تعداد تکرارها از پیش مشخص نیست.تفاوت اصلی آن با do-while در زمان بررسی شرط است:
while شرط را قبل از اجرا بررسی میکند (احتمال صفر بار اجرا)،
در حالی که do-while شرط را بعد از اجرا بررسی میکند (حداقل یک بار اجرا).
از while زمانی استفاده کنید که ممکن است اصلاً نیازی به تکرار نباشد، تعداد دفعات تکرار نامشخص است، یا خاتمه حلقه به یک شرط منطقی وابسته است.
همیشه به یاد داشته باشید که متغیر شرط را در بدنه حلقه بهروزرسانی کنید تا از حلقه بینهایت جلوگیری شود.


کاربران ما
شما هم نظرتون با ما دریاره “آموزش حلقه While در جاوا” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید