آموزش حلقه While و Do-While در زبان جاوا
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
دستورات While و Do-While در زبان جاوا
دستور while همانند دستور for به ما کمک میکند تا قطعه کد هایی را کنترل و تکرار کنیم.
شاید این سوال برای شما هم پیش بیاید که وقتی میخواهیم قطعه کدی را تکرار کنیم بهتر است از for استفاده کنیم یا while؟ و یا این که آیا این دو توانایی یکسانی دارند ؟
نکته: تمام کد هایی که به دستور for نوشته میشود امکان این را دارد تا با دستور while نیز نوشته شود؛ اما توصیه میشود در شرایط مختلف با توجه به نیازتان از هرکدام استفاده کنید.
به طور کلیتر زمانی از for استفاده میکنیم که تعداد دفعات تکرار مشخص باشد؛ و اگر در برنامه ما این شرط وجود داشت که (تا زمانی که یک رخداد اتفاق بیافتد یک کار مشخص را انجام بده) باید ازز دستور while استفاده کنیم.
دستور while
برای مثال اگر بخواهیم یک دستور را سه بار به صورت تکراری چاپ کنیم، باید ابتدا یک متغیر یا همان شمارنده تعریف کنیم؛ سپس باید موقعیت شروع شمارنده را تعیین کنیم؛ در قدم بعدی باید تعیین کنیم که این شمارنده تا چه مقداری باید ادامه پیدا کند. یک نکته بسیار مهم در نوشتن دستور while این است که میزان پرش در بلاک کد تعیین میشود و اگر این کار انجام نشود برنامه تا بینهایت ادامه پیدا خواهد کرد.
برای درک بهتر این مطلب به کد زیر توجه کنید:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
i=1;
while(i<=3){
System.out.println("darsman.com");
System.out.println(i);
i++;
}
}
}
برای درک بهتر کاربرد دستور while به مثال زیر توجه کنید:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
Scanner reader= new Scanner(System.in);
System.out.print("Enter Number : ");
int num= reader.nextInt();
int count=0;
while(num>0)
{
num/=10;
count++;
}
System.out.println("count is : "+count);
}
}
در این کد تعداد دفعات تکرار حلقه مشخص نیست و همانطور که گفته شد هر گاه تعداد تکرار مشخص نباشد باید از دستور while استفاده کنیم.
نکته: در بعضی از حلقه ها ممکن است بر اساس شرطی که خودمان تعیین کردهایم حلقه اجرانشود چون شرط ما غلط میباشد قطعه کد زیر نمونه ای از این نوع حلقه ها است:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i=1;
while(i>3)
{
System.out.println("Darsman.com");
i++;
}
}
}
دستور do while
دستور do while همانند دستور while میباشد با این تفاوت که در do while شرط در آخر حلقه بررسی میشود؛ ساختار نوشتاری آنها نیز با هم کمی متفاوت است؛ کد زیر نمونه ای از موارد استفاده از do while است:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i=1;
do {
System.out.println("Darsman.com");
i++;
}while(i>3);
}
}
در مثال قبلی دیدیم که دستور while اجرا نشد اما در دستور do while همان شرط حداقل یک بار اجرا خواهد شد چون شرط در پایان حلقه بررسی میشود.
دستور break و continue در حلقه ها یا بلاک ها استفاده میشود؛ این دو دستور به ما کمک میکند تا روند اجرای حلقه را مقداری تغییر بدهیم.
دستور break
دستور break بنا به شرطی که دارد حلقه را خاتمه میدهد. یک نمونه از استفاده این دستور را در کد زیر مشاهده میکنید:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=1;i<=10;i++)
{
if(i==5)
{
break;
}
System.out.println("Item_"+i);
}
}
}
دستور continue
اما دستور continue باعث میشود تا دستورات آن دور از حلقه بر اساس شرطی که دارد اجرا نشود و حلقه دوباره از بالا اجرا شود:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=1;i<=10;i++)
{
if(i==5)
{
continue;
}
System.out.println("Item_"+i);
}
}
}
همان طور که مشاهده کردید در خروجی این برنامه Item_5 چاپ نشد چون در شرط continue از چاپ شدن این مورد جلوگیری شد.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.