Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解
前言
大家了解了Java中的變量、數(shù)據(jù)類型和運算符后,小編給大家介紹使用選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)解決問題。
一.選擇結(jié)構(gòu)
1.1 if選擇結(jié)構(gòu)的四種格式
1.1.1 基本if語句—單分支判斷
if(比較表達(dá)式){ 語句體; } /* 執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false, 如果是true就執(zhí)行大括號內(nèi)的語句體,執(zhí)行完語句體后會繼續(xù)向下執(zhí)行 如果是false,就直接向下執(zhí)行,不會執(zhí)行大括號里面的語句體 */
1.1.2 基本if語句—雙分支判斷
if(表達(dá)式){ 語句體1 }else{ 語句體2 } 語句3 /* 執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false, 如果是true就執(zhí)行語句1,執(zhí)行完語句體1后會向下執(zhí)行語句3; 如果是false就執(zhí)行else里面的語句2,執(zhí)行完語句體2后繼續(xù)向下執(zhí)行語句3; */
1.1.3 多重if語句
if(表達(dá)式1){ 語句1 }else if(表達(dá)式2){ 語句2 } ...... else{ 語句n+1 } 語句n+2 /* 執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false, 如果是true執(zhí)行語句1,執(zhí)行完語句體1后會向下執(zhí)行語句n+2 如果是false就繼續(xù)判斷表達(dá)式2的值是true還是false, 是true就執(zhí)行比較表達(dá)式2后的語句體2, 是false就繼續(xù)向下在做比較表達(dá)式n的判斷, 直到所有else if里面的比較表達(dá)式值都是false,就執(zhí)行else后的語句體 */
1.1.4 嵌套if語句
if(表達(dá)式1){ 語句1 if(表達(dá)式2){ 語句2 }else{ 語句3 } }else{ 語句4 } 語句5 /* 執(zhí)行流程是:判斷比較表達(dá)式中的值,是true還是false, 如果是true執(zhí)行語句1 再判斷比較表達(dá)式2中的值, 如果是true就執(zhí)行語句2,執(zhí)行完語句體2后會向下執(zhí)行語句5 如果是false就執(zhí)行語句3,執(zhí)行完語句體3后會向下執(zhí)行語句5 如果是false就執(zhí)行語句4,執(zhí)行完語句體4后會向下執(zhí)行語句5 */
注意事項
- 比較表達(dá)式不管簡單還是復(fù)雜,結(jié)果都是boolean類型;
- if語句控制的語句體如果是一條語句,大括號可以省略。
- else后面如果沒有if,是不會出現(xiàn)比較表達(dá)式的。
- 四種if語句其實都是一個語句,只要有一個執(zhí)行其他的都不執(zhí)行。
1.2 switch選擇結(jié)構(gòu)
switch(表達(dá)式){ case 值1: 語句1; break; case 值2: 語句2; break; ...... default: 語句n+1; break; } /* switch是關(guān)鍵字,聲明一個switch語句。 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語句; default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語句中的else; */
switch語句執(zhí)行流程
- 首先計算表達(dá)式的值。
- 和每一個case進(jìn)行匹配,如果有就執(zhí)行對應(yīng)的語句體,看到break就結(jié)束。
- 如果沒有匹配,就執(zhí)行default的語句體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類有一個hasCode方法,結(jié)果也是返回int類型
實際上,Switch在底層實現(xiàn),目前只支持整型數(shù)據(jù)類型
注意事項
- case后面只能是常量,不能是變量,而且,多個case后面的值不能出現(xiàn)相同的
- default可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
- 遇到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)體語句; } //擴(kuò)展循環(huán)體: where(循環(huán)條件){ 循環(huán)體語句; 控制條件語句(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)體語句 }while(循環(huán)條件) //擴(kuò)展循環(huán)體: do{ 循環(huán)體語句 控制條件語句(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)體語句; } 執(zhí)行流程: 1:執(zhí)行初始化語句 2:執(zhí)行判斷條件語句 如果這里是true,就繼續(xù) 如果這里是false,循環(huán)就結(jié)束 3:執(zhí)行循環(huán)體語句 4:執(zhí)行迭代部分語句 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(元素類型 元素名稱 : 遍歷對象){ 循環(huán)操作; } }
注意事項
- 判斷條件語句無論簡單還是復(fù)雜,結(jié)果是boolean類型。
- 循環(huán)體語句如果是一條,可以省略大括號,但是不建議。
- 有分號就沒有左大括號,有左大括號就沒有分號。
- 一定要修改控制條件,否則會出現(xiàn)死循環(huán)。
- 在解決問題時,對于循環(huán)次數(shù)確定的情況,通常選用for循環(huán)結(jié)構(gòu);對于循環(huán)結(jié)構(gòu)次數(shù)不確定的情況,通常選用while和do-while循環(huán)結(jié)構(gòu)。
- for-each增強(qiáng)for循環(huán)在遍歷數(shù)組過程中不能修改數(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)行迭代部分的計算。如果條件不成立,跳出循環(huán)。
- for-each循環(huán)結(jié)構(gòu):先定義變量,在把數(shù)組賦值給變量,在進(jìn)行遍歷。
三.控制語句
(1)break:中斷的意思
A:用在循環(huán)和switch語句中,離開此應(yīng)用場景無意義。
B:作用
- a:跳出單層循環(huán)
- b:跳出多層循環(huán),需要標(biāo)簽語句的配合
(2)continue:繼續(xù)
A:用在循環(huán)中,離開此應(yīng)用場景無意義。
B:作用
- a:跳出單層循環(huán)的一次,可以繼續(xù)下一次
(3)return:返回
A:用于結(jié)束方法的。
B:一旦遇到return,方法就不會在繼續(xù)往后執(zhí)行。
小結(jié):在循環(huán)結(jié)構(gòu)中break語句用于終止某個循環(huán),程序跳轉(zhuǎn)到循環(huán)體外的下一條語句.
continue語句用于跳出本次循環(huán),進(jìn)入下一次循環(huán)的語句
以上就是Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Java 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!
- Java流程控制之循環(huán)結(jié)構(gòu)for,增強(qiáng)for循環(huán)
- Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
- java循環(huán)結(jié)構(gòu)、數(shù)組的使用小結(jié)
- 最詳細(xì)的Java循環(huán)結(jié)構(gòu)解析之for循環(huán)教程(適合小白)
- Java代碼的三根頂梁柱:循環(huán)結(jié)構(gòu)
- Java基礎(chǔ)之選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)
- 淺析JAVA 循環(huán)結(jié)構(gòu)
- Java語法基礎(chǔ)之循環(huán)結(jié)構(gòu)語句詳解
- Java基礎(chǔ)知識精通循環(huán)結(jié)構(gòu)與break及continue
相關(guān)文章
Java中ThreadLocal避免內(nèi)存泄漏的方法詳解
ThreadLocal是Java中的一個線程本地存儲機(jī)制,它允許每個線程擁有一個獨立的本地存儲空間,用于存儲該線程的變量,本文主要介紹了ThreadLocal如何避免內(nèi)存泄漏,需要的朋友可以參考下2023-05-05jvm之java類加載機(jī)制和類加載器(ClassLoader)的用法
這篇文章主要介紹了jvm之java類加載機(jī)制和類加載器(ClassLoader)的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09關(guān)于Spring自定義XML schema 擴(kuò)展的問題(Spring面試高頻題)
今天給大家分享一道spring高頻率面試題關(guān)于Spring自定義XML schema 擴(kuò)展的問題,今天以spring整合dubbo的實例給大家詳細(xì)講解下,感興趣的朋友跟隨小編一起看看吧2021-05-05Java二維數(shù)組實現(xiàn)數(shù)字拼圖效果
這篇文章主要為大家詳細(xì)介紹了Java二維數(shù)組實現(xiàn)數(shù)字拼圖效果,控制臺可以對空格進(jìn)行移動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07