فصل 8: عبارت Switch و حلقه For در جاوا

21 مرداد 1397
switch-for-java

عبارت 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;    
}

عبارت Switch‌ در جاوا

مثال:

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

Switch ادامه پیدا می کند!

اگر تصویر بالا و کدهای گذاشته شده را دقیق بررسی کرده باشید، حتما متوجه شدید که در صورتی که پس از هر شرط عبارت 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
  • حلقه while
  • حلقه do-while

حلقه For:

از حلقه For در جاوا برای اجرای یه بخش کد به صورت مکرر استفاده می شود. اگر تعداد تکرار اجرای کد مشخص باشد، از میان حلقه ها For بهترین گزینه می باشد. خود حلقه For به شکل های مختلفی وجود دارد:

  • ساده
  • For-each یا حلقه For پیشرفته
  • حلقه For اسم‌دار یا Labeled

حلقه For ساده:

حلقه For ساده به همان شکل موجود در C و C++ می باشد. یعنی ابتدا مقداردهی به یک متغیر، سپس چک کردن شروط و در انتها اضافه یا کم کردن مقدار متغیر. شکل کلی حلقه For این گونه است:

سینتکس:

for(initialization;condition;incr/decr){  
//code to be executed  
}

حلقه for در جاوا

مثال:

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-Each در جاوا

از این نوع حلقه 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 اسم انتخاب کرد تا اگر چندین 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

حلقه For بی نهایت

در صورت استفاده از دو نقطه‌ویرگول، آنگاه حلقه برای بی‌نهایت دفعه تکرار می شود و برای خاتمه دادن به روند برنامه باید کلیدهای 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
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.