Java中 選擇結構與循環結構的使用(詳細)

前言

        大家瞭解了Java中的變量、數據類型和運算符後,小編給大家介紹使用選擇結構和循環結構解決問題。

一.選擇結構

 1.1 if選擇結構的四種格式

   1.1.1 基本if語句—單分支判斷
	if(比較表達式){
		語句體;
	}
	/*
		執行流程是:判斷比較表達式中的值,是true還是false,
		
		如果是true就執行大括號內的語句體,執行完語句體後會繼續向下執行
		如果是false,就直接向下執行,不會執行大括號裏面的語句體
	*/
   1.1.2 基本if語句—雙分支判斷
	if(表達式){
		語句體1
	}else{
		語句體2
	}
	語句3
	/*
		執行流程是:判斷比較表達式中的值,是true還是false,
		
		如果是true就執行語句1,執行完語句體1後會向下執行語句3;
		如果是false就執行else裏面的語句2,執行完語句體2後繼續向下執行語句3;
	*/
   1.1.3 多重if語句
	if(表達式1){
		語句1
	}else if(表達式2){
		語句2
	}
	......
	else{
		語句n+1
	}
	語句n+2
	/*
		執行流程是:判斷比較表達式中的值,是true還是false,
		
		如果是true執行語句1,執行完語句體1後會向下執行語句n+2
		
		如果是false就繼續判斷表達式2的值是true還是false,
		是true就執行比較表達式2後的語句體2,
		是false就繼續向下在做比較表達式n的判斷,
		
		直到所有else if裏面的比較表達式值都是false,就執行else後的語句體
	*/
   1.1.4 嵌套if語句
	if(表達式1){
		語句1
		if(表達式2){
			語句2
		}else{
			語句3
		}
	}else{
		語句4
	}
	語句5
	/*
		執行流程是:判斷比較表達式中的值,是true還是false,
		
		如果是true執行語句1   再判斷比較表達式2中的值,
		如果是true就執行語句2,執行完語句體2後會向下執行語句5
		如果是false就執行語句3,執行完語句體3後會向下執行語句5
		
		如果是false就執行語句4,執行完語句體4後會向下執行語句5
	*/
注意事項:
  1. 比較表達式不管簡單還是複雜,結果都是boolean類型;
  2. if語句控制的語句體如果是一條語句,大括號可以省略。
  3. else後面如果沒有if,是不會出現比較表達式的。
  4. 四種if語句其實都是一個語句,只要有一個執行其他的都不執行。

 1.2 switch選擇結構

	switch(表達式){
		case1:
			語句1;
			break;
		case2:
			語句2;
			break;
		......
		default:
			語句n+1;
			break;
	}
	/*
		switch是關鍵字,聲明一個switch語句。
		switch支持的數據類型:
			基本數據類型:byte, short, char, int
			包裝數據類型:Byte, Short, Character, Integer
			枚舉類型:Enum
			字符串類型:String(Jdk 7+ 開始支持)
			
		case:後面的值就是要和表達式進行比較的值;
		break:表示程序到這裏中斷,跳出switch語句;
		default:如果所有的情況都不匹配,就執行這裏,相當於if語句中的else;
	*/
switch語句執行流程:
  1. 首先計算表達式的值。
  2. 和每一個case進行匹配,如果有就執行對應的語句體,看到break就結束。
  3. 如果沒有匹配,就執行default的語句體n+1。
switch選擇結構支持的數據類型
  1. jdk1.5以前,只能是byte、short、int、char類型
  2. jdk1.5以後,引入了枚舉類型(enum類型)、包裝數據類型(Byte、Short、Integer、Character)
  3. jdk1.7以後,支持String類型,String類有一個hasCode方法,結果也是返回int類型
    實際上,Switch在底層實現,目前只支持整型數據類型
注意事項:
  1. case後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的
  2. default可以省略,但是不建議,因爲它的作用是對不正確的情況給出提示。
  3. 遇到break或執行到最後就結束判斷。

二.循環結構

 2.1 while循環結構

public static void main(String[] args){
	//基本循環體:
	int i=0;
	while(i<=10){
		System.out.println(i);
		i++;
		//輸出結果:0,1,2,3,4,5,6,7,8,9,10
	}
|
	where(循環條件){
		循環體語句;
	}
	//擴展循環體:
	where(循環條件){
		循環體語句;
		控制條件語句(break;continue;)
	}	

 2.2 do-while循環結構

//基本循環體:
public static void main(String[] args){
	int i=0;
	do{
		System.out.println(i);
		i++;
		//輸出結果:0,1,2,3,4,5,6,7,8,9,10
	}while(i>=10)
}
	do{
		循環體語句
	}while(循環條件)
//擴展循環體:
	do{
		循環體語句
		控制條件語句(break;continue;)
	}while(循環條件)	

 2.3 for循環結構

public static void main(String[] args){
	for(int i=0;i<=10;i++){
		System.out.println(i);
		//輸出結果:0,2,3,4,5,6,7,8,9,10
	}
}	
	
	for(初始化;條件判斷;迭代部分){
		循環體語句;
	}
	
	執行流程:
		1:執行初始化語句
		2:執行判斷條件語句
			如果這裏是true,就繼續
			如果這裏是false,循環就結束
		3:執行循環體語句
		4:執行迭代部分語句
		5:回到判斷條件

 2.4 for-each循環結構

public static void main(String[] args){
	int[] array = {1,2,3,4,5,6,7};
	for(int i : array){
		System.out.println(i);
		//輸出結果:1,2,3,4,5,6,7
	}
}	
	
	for(元素類型 元素名稱 : 遍歷對象){
		循環操作;
	}
	
}
注意事項
  1. 判斷條件語句無論簡單還是複雜,結果是boolean類型。
  2. 循環體語句如果是一條,可以省略大括號,但是不建議。
  3. 有分號就沒有左大括號,有左大括號就沒有分號。
  4. 一定要修改控制條件,否則會出現死循環。
  5. 在解決問題時,對於循環次數確定的情況,通常選用for循環結構;
    對於循環結構次數不確定的情況,通常選用while和do-while循環結構。
  6. for-each增強for循環在遍歷數組過程中不能修改數組中某元素的值。
  7. for-each僅適用於遍歷,不涉及有關索引(下標)的操作。
執行循序
  1. while循環結構:先進行條件判斷,再進行循環體。如果條件不成立,退出循環。
  2. do-while循環結構:先進行條件判斷,循環體至少執行一次。
  3. for循環結構:先執行初始化部分,再進行條件判斷,然後執行循環體,最後進行迭代部分的計算。如果條件不成立,跳出循環。
  4. for-each循環結構:先定義變量,在把數組賦值給變量,在進行遍歷。

三.控制語句

(1)break:中斷的意思
	A:用在循環和switch語句中,離開此應用場景無意義。
	B:作用
		a:跳出單層循環
		b:跳出多層循環,需要標籤語句的配合
(2)continue:繼續
	A:用在循環中,離開此應用場景無意義。
	B:作用
		a:跳出單層循環的一次,可以繼續下一次
(3)return:返回
	A:用於結束方法的。
	B:一旦遇到return,方法就不會在繼續往後執行。

小結:在循環結構中break語句用於終止某個循環,程序跳轉到循環體外的下一條語句.
continue語句用於跳出本次循環,進入下一次循環的語句
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章