欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解

 更新時(shí)間:2022年04月06日 17:15:24   作者:Teror  
循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程

前言

大家了解了Java中的變量、數(shù)據(jù)類型和運(yùn)算符后,小編給大家介紹使用選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)解決問(wèn)題。

一.選擇結(jié)構(gòu)

1.1 if選擇結(jié)構(gòu)的四種格式

1.1.1 基本if語(yǔ)句—單分支判斷

	if(比較表達(dá)式){
		語(yǔ)句體;
	}
	/*
		執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false,
		
		如果是true就執(zhí)行大括號(hào)內(nèi)的語(yǔ)句體,執(zhí)行完語(yǔ)句體后會(huì)繼續(xù)向下執(zhí)行
		如果是false,就直接向下執(zhí)行,不會(huì)執(zhí)行大括號(hào)里面的語(yǔ)句體
	*/

1.1.2 基本if語(yǔ)句—雙分支判斷

	if(表達(dá)式){
		語(yǔ)句體1
	}else{
		語(yǔ)句體2
	}
	語(yǔ)句3
	/*
		執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false,
		
		如果是true就執(zhí)行語(yǔ)句1,執(zhí)行完語(yǔ)句體1后會(huì)向下執(zhí)行語(yǔ)句3;
		如果是false就執(zhí)行else里面的語(yǔ)句2,執(zhí)行完語(yǔ)句體2后繼續(xù)向下執(zhí)行語(yǔ)句3;
	*/

1.1.3 多重if語(yǔ)句

	if(表達(dá)式1){
		語(yǔ)句1
	}else if(表達(dá)式2){
		語(yǔ)句2
	}
	......
	else{
		語(yǔ)句n+1
	}
	語(yǔ)句n+2
	/*
		執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false,
		
		如果是true執(zhí)行語(yǔ)句1,執(zhí)行完語(yǔ)句體1后會(huì)向下執(zhí)行語(yǔ)句n+2
		
		如果是false就繼續(xù)判斷表達(dá)式2的值是true還是false,
		是true就執(zhí)行比較表達(dá)式2后的語(yǔ)句體2,
		是false就繼續(xù)向下在做比較表達(dá)式n的判斷,
		
		直到所有else if里面的比較表達(dá)式值都是false,就執(zhí)行else后的語(yǔ)句體
	*/

1.1.4 嵌套if語(yǔ)句

	if(表達(dá)式1){
		語(yǔ)句1
		if(表達(dá)式2){
			語(yǔ)句2
		}else{
			語(yǔ)句3
		}
	}else{
		語(yǔ)句4
	}
	語(yǔ)句5
	/*
		執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false,
		
		如果是true執(zhí)行語(yǔ)句1   再判斷比較表達(dá)式2中的值,
		如果是true就執(zhí)行語(yǔ)句2,執(zhí)行完語(yǔ)句體2后會(huì)向下執(zhí)行語(yǔ)句5
		如果是false就執(zhí)行語(yǔ)句3,執(zhí)行完語(yǔ)句體3后會(huì)向下執(zhí)行語(yǔ)句5
		
		如果是false就執(zhí)行語(yǔ)句4,執(zhí)行完語(yǔ)句體4后會(huì)向下執(zhí)行語(yǔ)句5
	*/

注意事項(xiàng)

  • 比較表達(dá)式不管簡(jiǎn)單還是復(fù)雜,結(jié)果都是boolean類型;
  • if語(yǔ)句控制的語(yǔ)句體如果是一條語(yǔ)句,大括號(hào)可以省略。
  • else后面如果沒(méi)有if,是不會(huì)出現(xiàn)比較表達(dá)式的。
  • 四種if語(yǔ)句其實(shí)都是一個(gè)語(yǔ)句,只要有一個(gè)執(zhí)行其他的都不執(zhí)行。

1.2 switch選擇結(jié)構(gòu)

	switch(表達(dá)式){
		case 值1:
			語(yǔ)句1;
			break;
		case 值2:
			語(yǔ)句2;
			break;
		......
		default:
			語(yǔ)句n+1;
			break;
	}
	/*
		switch是關(guān)鍵字,聲明一個(gè)switch語(yǔ)句。
		switch支持的數(shù)據(jù)類型:
			基本數(shù)據(jù)類型:byte, short, char, int
			包裝數(shù)據(jù)類型:Byte, Short, Character, Integer
			枚舉類型:Enum
			字符串類型:String(Jdk 7+ 開始支持)
			
		case:后面的值就是要和表達(dá)式進(jìn)行比較的值;
		break:表示程序到這里中斷,跳出switch語(yǔ)句;
		default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語(yǔ)句中的else;
	*/

switch語(yǔ)句執(zhí)行流程

  • 首先計(jì)算表達(dá)式的值。
  • 和每一個(gè)case進(jìn)行匹配,如果有就執(zhí)行對(duì)應(yīng)的語(yǔ)句體,看到break就結(jié)束。
  • 如果沒(méi)有匹配,就執(zhí)行default的語(yǔ)句體n+1。

switch選擇結(jié)構(gòu)支持的數(shù)據(jù)類型

  • jdk1.5以前,只能是byte、short、int、char類型
  • jdk1.5以后,引入了枚舉類型(enum類型)、包裝數(shù)據(jù)類型(Byte、Short、Integer、Character)
  • jdk1.7以后,支持String類型,String類有一個(gè)hasCode方法,結(jié)果也是返回int類型

實(shí)際上,Switch在底層實(shí)現(xiàn),目前只支持整型數(shù)據(jù)類型

注意事項(xiàng)

  • case后面只能是常量,不能是變量,而且,多個(gè)case后面的值不能出現(xiàn)相同的
  • default可以省略,但是不建議,因?yàn)樗淖饔檬菍?duì)不正確的情況給出提示。
  • 遇到break或執(zhí)行到最后就結(jié)束判斷。

二.循環(huán)結(jié)構(gòu)

2.1 while循環(huán)結(jié)構(gòu)

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

2.2 do-while循環(huán)結(jié)構(gòu)

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

2.3 for循環(huán)結(jié)構(gòu)

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

2.4 for-each循環(huán)結(jié)構(gòu)

public static void main(String[] args){
	int[] array = {1,2,3,4,5,6,7};
	for(int i : array){
		System.out.println(i);
		//輸出結(jié)果:1,2,3,4,5,6,7
	}
}	
	
	for(元素類型 元素名稱 : 遍歷對(duì)象){
		循環(huán)操作;
	}
	
}

注意事項(xiàng)

  • 判斷條件語(yǔ)句無(wú)論簡(jiǎn)單還是復(fù)雜,結(jié)果是boolean類型。
  • 循環(huán)體語(yǔ)句如果是一條,可以省略大括號(hào),但是不建議。
  • 有分號(hào)就沒(méi)有左大括號(hào),有左大括號(hào)就沒(méi)有分號(hào)。
  • 一定要修改控制條件,否則會(huì)出現(xiàn)死循環(huán)。
  • 在解決問(wèn)題時(shí),對(duì)于循環(huán)次數(shù)確定的情況,通常選用for循環(huán)結(jié)構(gòu);對(duì)于循環(huán)結(jié)構(gòu)次數(shù)不確定的情況,通常選用while和do-while循環(huán)結(jié)構(gòu)。
  • for-each增強(qiáng)for循環(huán)在遍歷數(shù)組過(guò)程中不能修改數(shù)組中某元素的值。
  • for-each僅適用于遍歷,不涉及有關(guān)索引(下標(biāo))的操作。

執(zhí)行循序

  • while循環(huán)結(jié)構(gòu):先進(jìn)行條件判斷,再進(jìn)行循環(huán)體。如果條件不成立,退出循環(huán)。
  • do-while循環(huán)結(jié)構(gòu):先進(jìn)行條件判斷,循環(huán)體至少執(zhí)行一次。
  • for循環(huán)結(jié)構(gòu):先執(zhí)行初始化部分,再進(jìn)行條件判斷,然后執(zhí)行循環(huán)體,最后進(jìn)行迭代部分的計(jì)算。如果條件不成立,跳出循環(huán)。
  • for-each循環(huán)結(jié)構(gòu):先定義變量,在把數(shù)組賦值給變量,在進(jìn)行遍歷。

三.控制語(yǔ)句

(1)break:中斷的意思

A:用在循環(huán)和switch語(yǔ)句中,離開此應(yīng)用場(chǎng)景無(wú)意義。

B:作用

  • a:跳出單層循環(huán)
  • b:跳出多層循環(huán),需要標(biāo)簽語(yǔ)句的配合

(2)continue:繼續(xù)

A:用在循環(huán)中,離開此應(yīng)用場(chǎng)景無(wú)意義。

B:作用

  • a:跳出單層循環(huán)的一次,可以繼續(xù)下一次

(3)return:返回

A:用于結(jié)束方法的。

B:一旦遇到return,方法就不會(huì)在繼續(xù)往后執(zhí)行。

小結(jié):在循環(huán)結(jié)構(gòu)中break語(yǔ)句用于終止某個(gè)循環(huán),程序跳轉(zhuǎn)到循環(huán)體外的下一條語(yǔ)句.

continue語(yǔ)句用于跳出本次循環(huán),進(jìn)入下一次循環(huán)的語(yǔ)句

以上就是Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Java 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    ThreadLocal是Java中的一個(gè)線程本地存儲(chǔ)機(jī)制,它允許每個(gè)線程擁有一個(gè)獨(dú)立的本地存儲(chǔ)空間,用于存儲(chǔ)該線程的變量,本文主要介紹了ThreadLocal如何避免內(nèi)存泄漏,需要的朋友可以參考下
    2023-05-05
  • Java自動(dòng)拆箱空指針異常的解決

    Java自動(dòng)拆箱空指針異常的解決

    這篇文章主要介紹了Java自動(dòng)拆箱空指針異常的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringBoot整合Xxl-Job的完整步驟記錄

    SpringBoot整合Xxl-Job的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于SpringBoot整合Xxl-Job的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • jvm之java類加載機(jī)制和類加載器(ClassLoader)的用法

    jvm之java類加載機(jī)制和類加載器(ClassLoader)的用法

    這篇文章主要介紹了jvm之java類加載機(jī)制和類加載器(ClassLoader)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 輕輕松松吃透Java并發(fā)fork/join框架

    輕輕松松吃透Java并發(fā)fork/join框架

    fork/join是一個(gè)工具框架 ,本文詳細(xì)的介紹了fork/join框架的具體使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 關(guān)于Spring自定義XML schema 擴(kuò)展的問(wèn)題(Spring面試高頻題)

    關(guān)于Spring自定義XML schema 擴(kuò)展的問(wèn)題(Spring面試高頻題)

    今天給大家分享一道spring高頻率面試題關(guān)于Spring自定義XML schema 擴(kuò)展的問(wèn)題,今天以spring整合dubbo的實(shí)例給大家詳細(xì)講解下,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Java二維數(shù)組實(shí)現(xiàn)數(shù)字拼圖效果

    Java二維數(shù)組實(shí)現(xiàn)數(shù)字拼圖效果

    這篇文章主要為大家詳細(xì)介紹了Java二維數(shù)組實(shí)現(xiàn)數(shù)字拼圖效果,控制臺(tái)可以對(duì)空格進(jìn)行移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 使用jpa原生sql@Query操作增刪改查

    使用jpa原生sql@Query操作增刪改查

    這篇文章主要介紹了使用jpa原生sql@Query操作增刪改查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 全面解析Java中的HashMap類

    全面解析Java中的HashMap類

    HashMap類為Java提供了鍵值對(duì)應(yīng)的map類型,本文將從源碼角度全面解析Java中的HashMap類,同時(shí)包括其各種常用操作方法等,歡迎參考與借鑒
    2016-05-05
  • 圖解如何在Spring Boot中使用JSP頁(yè)面

    圖解如何在Spring Boot中使用JSP頁(yè)面

    這篇文章主要介紹了圖解如何在Spring Boot中使用JSP頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論