1. 程式人生 > >Java複習總結04——流程控制

Java複習總結04——流程控制

三大流程控制語句:順序,選擇,迴圈。

一.順序控制語句

按照程式碼的先後順序依次執行,程式中多數程式碼都是這樣執行的。一個程式總的執行順序也是這樣的,先順序執行,遇到選擇和迴圈語句後,就按選擇迴圈的規則執行,選擇迴圈語句結束後繼續按順序執行。

二.選擇控制語句 

  1. if結構
    if(條件){
        在該條件成立下執行的程式碼,否則不執行,直接跳過
    }
    例如:
    if(a>b){//如果a大於b,就輸出a
        System.out.println(a);
    }
     
  2. if....else
    if(條件){
        //程式碼1
        如果條件成立,就執行此處程式碼1,否者,執行else下的程式碼2
    }else{
        //程式碼2
    }
    例如:
    if(a>b){//如果a大於b,就輸出a,反之輸出b
        System.out.println(a);
    }else{
        System.out.println(b);
    }
  3. 多重if結構
    if(條件1){
    }else if(條件2){
    }else if(條件3){
    }else{
    }
    例如常見的成績判斷
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();//從鍵盤輸入成績n,n為整數
    	if(n>90) {
    		System.out.println("優秀");
    	}else if(n>80) {
    		System.out.println("良好");
    	}else if (n>70) {
    		System.out.println("中等");
    	}else if(n>60){
    		System.out.println("及格");
    	}else {
    		System.out.println("不及格");
    	}
  4. 巢狀if結構
    if(條件1){
        if(條件2){
        }
    }
    例如
    int x=5,y=6;
    if(x!=y) {
    	if(x>y) {
    		System.out.println("x>y");
    	}else {
    		System.out.println("x<y");
    	}			
    }else {
    	System.out.println("x=y");
    }

switch語句

switch(表示式){//表示式可以為byte,short,char,int,enum(列舉,jdk5.0引入),String(jdk7.0引入)
    case 目標值1:程式碼;break;//break的作用是結束switch語句,使之不再向下執行
    case 目標值2:程式碼;break;//如果不加break,程式就會一直向下執行,直到遇到break和執行到最後
    case 目標值3:程式碼;break;//case後面的n的取值不能重複
    case 目標4:程式碼;break;
    ......
    default:程式碼;//n取其他值
}
//輸出星期幾的例子,應該是很常見的,大家可以去掉其中幾個break試試輸出會有什麼不同
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//從鍵盤輸入成績n,n為整數
switch (n) {
case 1:
    System.out.println("星期一");
	break;
case 2:
	System.out.println("星期二");
	break;
case 3:
	System.out.println("星期三");
	break;
case 4:
	System.out.println("星期四");
	break;
case 5:
	System.out.println("星期五");
	break;
case 6:
	System.out.println("星期六");
	break;
case 7:
	System.out.println("星期七");
	break;
default:
	System.out.println("輸入錯誤");
}

三.迴圈控制語句

  1. while
    while(迴圈條件){
        //程式碼
    }
    滿足迴圈條件就執行裡面的程式碼
    
    int n = 5;
    while(n>1){
        System.out.println(n);
        n--;
    }
  2. do...while
    do{
        //程式碼
    }while(迴圈條件)
    //和while迴圈類似,但是迴圈條件放在迴圈體的後面,這意味著迴圈體會無條件執行一次
    //所以while迴圈可能一次都不執行,但do..while迴圈至少執行一次
    
    //例如下邊的程式碼,n=1不滿足n>1的迴圈條件,但還是會輸出1並且執行n--
    int n=1;
    do{
        System.out.prntln(n);
        n--;
    }while(n>1)
  3. for
    for(初始化表示式;迴圈條件;操作表示式){
        迴圈體
    }
    執行順序:
    for(a;b;c){
        d
    }
    a->b->d->c->b->d->c->b->d->c.....直到不滿足迴圈條件b
  4. 增強型for迴圈(也叫foreach迴圈)
格式
for(資料型別 變數名:遍歷物件){

}
/*資料型別  變數名:宣告一個變數用來接收遍歷目標遍歷後的元素,
一般為遍歷物件的子型別,如遍歷物件為陣列,數組裡面的資料為int型別,則迴圈裡面的資料型別宣告為int。*/
例如:
int[] arr = {1,5,2,7,4,8,9,10};
for(int n:arr) {
	System.out.println(n);
}

注:1.增強for迴圈底層也是使用了迭代器獲取的,只不過獲取迭代器由jvm完成,不需要我們獲取迭代器而已,所以在使用增強for迴圈遍歷集合是不能對集合元素進行修改,遍歷陣列也同樣如此

2.普通for迴圈可以沒有遍歷的目標,而增強for迴圈一定要有遍歷的目標。