條件和迴圈

條件和迴圈控制
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:          }