عبارت Switch در جاوا بسیار به if-else-if شباهت دارد؛ به این شکل که یک عبارت یا مقدار داده می شود و با تعدادی شرط چک می شود، در صورت درست بودن، آنگاه بلوک کد مربوطه اجرا می شود.
سینتکس:
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
مثال:
public class SwitchExample { public static void main(String[] args) { int number=20; switch(number){ case 10: System.out.println("10");break; case 20: System.out.println("20");break; case 30: System.out.println("30");break; default:System.out.println("Not in 10, 20 or 30"); } } }
خروجی:
20
اگر تصویر بالا و کدهای گذاشته شده را دقیق بررسی کرده باشید، حتما متوجه شدید که در صورتی که پس از هر شرط عبارت break را نگذارید، پس از نخستین شرطی که صحیح است، تمام بلوک کدهای مربوط به شروط دیگر اجرا خواهند شد. به مثال زیر توجه کنید:
public class SwitchExample2 { public static void main(String[] args) { int number=20; switch(number){ case 10: System.out.println("10"); case 20: System.out.println("20"); case 30: System.out.println("30"); default:System.out.println("Not in 10, 20 or 30"); } } }
خروجی:
20 30 Not in 10, 20 or 30
در زبان های برنامه نویسی، از حلقه ها برای اجرای مکرر یک دستور یا تابع هنگام برقراری شرط خاصی استفاده می کنند. سه نوع حلقه در جاوا وجود دارد:
از حلقه For در جاوا برای اجرای یه بخش کد به صورت مکرر استفاده می شود. اگر تعداد تکرار اجرای کد مشخص باشد، از میان حلقه ها For بهترین گزینه می باشد. خود حلقه For به شکل های مختلفی وجود دارد:
حلقه For ساده به همان شکل موجود در C و C++ می باشد. یعنی ابتدا مقداردهی به یک متغیر، سپس چک کردن شروط و در انتها اضافه یا کم کردن مقدار متغیر. شکل کلی حلقه For این گونه است:
سینتکس:
for(initialization;condition;incr/decr){ //code to be executed }
مثال:
public class ForExample { public static void main(String[] args) { for(int i=1;i<=10;i++){ System.out.println(i); } } }
خروجی:
1 2 3 4 5 6 7 8 9 10
از این نوع حلقه For بیشتر برای کالکشنها و آرایه ها در جاوا استفاده می شود، خصوصا هنگامی که تعداد اشیا درون آنها را ندانیم. ضمنا با استفاده از For-Each لازم به کم و زیان کردن مقدار متغیر نیست.
نکته ای که وجود دارد این است که این حلقه بر مبنای خودِ عناصر کار میکنه نه شماره آنها. به قطعه کد زیر توجه کنید:
سینتکس:
for(Type var:array){ //code to be executed }
مثال:
public class ForEachExample { public static void main(String[] args) { int arr[]={12,23,44,56,78}; for(int i:arr){ System.out.println(i); } } }
خروجی:
12 23 44 56 78
می توان برای هر کدام از حلقههای For اسم انتخاب کرد تا اگر چندین For را درون هم به کار بردیم، به راحتی بتوانیم از دستور Break و Continue استفاده کنیم.
در حالت عادی، دستور Break یا Continue تنها بر روی داخلی ترین حلقه عمل می کنند.
سینتکس:
labelname: for(initialization;condition;incr/decr){ //code to be executed }
مثال:
public class LabeledForExample { public static void main(String[] args) { aa: for(int i=1;i<=3;i++){ bb: for(int j=1;j<=3;j++){ if(i==2&&j==2){ break aa; } System.out.println(i+" "+j); } } } }
خروجی:
1 1 1 2 1 3 2 1
اگر از break bb استفاده کنیم، تنها از حلقه داخلی بیرون میاید، اگر از break هم استفاده می کردیم، باز همین اتفاق می افتاد.
ublic class LabeledForExample2 { public static void main(String[] args) { aa: for(int i=1;i<=3;i++){ bb: for(int j=1;j<=3;j++){ if(i==2&&j==2){ break bb; } System.out.println(i+" "+j); } } } }
خروجی:
1 1 1 2 1 3 2 1 3 1 3 2 3 3
در صورت استفاده از دو نقطهویرگول، آنگاه حلقه برای بینهایت دفعه تکرار می شود و برای خاتمه دادن به روند برنامه باید کلیدهای Ctrl+C را فشار داد.
سینتکس:
for(;;){ //code to be executed }
مثال:
public class ForExample { public static void main(String[] args) { for(;;){ System.out.println("infinitive loop"); } } }
خروجی:
infinitive loop infinitive loop infinitive loop infinitive loop infinitive loop ctrl+c
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.