條件和迴圈控制
while , if , ?: , switch , for , break , continue , label ,各對應範例如下
1. while
注意: do while 用法
1: int i1 = 0;
2:
3: while(i1<3)//先檢查條件
4: {
5: i1++;//再執行
6: System.out.println(i1);// 1 2 3
7: }
8:
9: do
10: {
11: --i1;//先執行
12: System.out.println(i1);// 2 1 0
13: }
14: while(i1>0);//再檢查條件
2. if
注意:如果執行單行程式碼可省略大括號
1: int i1 = 0;
2:
3: if(i1==3)//條件1
4: {
5: System.out.println(i1);//執行1
6: }
7: else if(i1==0)//條件2
8: //{如果條件的執行只有一行可去除大括號
9: System.out.println(i1); //執行2
10: //{如果條件的執行只有一行可去除大括號
11: else//未滿足以上條件就執行這裡 條件3
12: {
13: System.out.println("else here!!"); //執行3
14: }
3. for
注意:初始化,檢查條件,執行迴圈內容的順序
1: for(int a=0; a<3; a++)// 1.先初始化; 2.再檢查條件; 3.執行迴圈內容
2: {
3: System.out.println(a);//0 1 2
4: }
4. switch
注意:可放置的基本類型,case,break,default
1: char c1 = 'c';
2:
3: switch (c1)//只能放置 byte , short , int , char
4: {
5: case 0://條件
6: System.out.println(i1);//執行
7: break;//離開
8:
9: case 'c':
10: System.out.println(c1);// c
11: break;
12:
13: default://沒滿足任何條件執行這裡
14: System.out.println("default");
15: break;
16: }
5. ? :
注意:條件,條件為true,條件為false的用法
1: int i1 = 5;
2:
3: int i2 = 1<0 ? --i1 : i1++; // 條件 ? 條件為true執行這 : 條件為false執行這
4: int i3 = 1>0 ? --i1 : i1++;
5:
6: System.out.println(i2);//5
7: System.out.println(i3);//5
6. break
注意:break的範圍
1: for(int i=0; i<5;i++)
2: {
3: if(i==3)
4: {
5: break;//結束最近的迴圈
6: }
7:
8: System.out.println(i);//0 1 2
9: }
10:
11: for(int i=0; i<3; i++)
12: {
13: for(int j=0; j<3 ;j++)
14: {
15: if(j==2)
16: {
17: break;//結束最近的迴圈
18: }
19:
20: System.out.println("j:"+j);// 0 1 0 1 0 1
21: }
22:
23: System.out.println("i:"+i);// 0 1 2
24: }
7. continue
注意:contine 的範圍和次數
1: for(int i=0; i<5;i++)
2: {
3: if(i==2)
4: {
5: continue;//跳離該次最近的迴圈
6: }
7:
8: System.out.println(i);//0 1 3 4
9: }
10:
11: for(int i=0; i<3; i++)
12: {
13: for(int j=0; j<3 ;j++)
14: {
15: if(j==1)
16: {
17: continue;//跳離該次最近的迴圈
18: }
19:
20: System.out.println(j);// 0 2 0 2 0 2
21: }
22:
23: System.out.println(i);// 0 1 2
24: }
8. label
注意: label 和迴圈之間不可插入其他程式碼
1: abc://標簽為 abc
2: for(int i=0; i<3; i++)
3: {
4: def://標簽為 def
5: for(int j=0; j<3 ;j++)
6: {
7: if(j==1)
8: {
9: break abc;//跳離標簽為 abc的迴圈
10: }
11:
12: System.out.println(j);// 0
13: }
14:
15: System.out.println(i);//
16: }