Java學(xué)習(xí)的第五天

switch case和循環(huán)結(jié)構(gòu)

1. switch case

1.1 結(jié)構(gòu)概述

? ? 這里使用的switch - case結(jié)構(gòu)是一個可以在很多開發(fā)語言中通用使用的

今天上課演示使用的數(shù)據(jù)類型是int類型,并且要求在沒有講述其他可以使用類型之前

只能使用int


執(zhí)行流程:

? ? 代碼運行到switch case結(jié)構(gòu)

? ? 首先取出switch之后小括號中變量保存的數(shù)據(jù)

? ? 匹配switch 大括號以內(nèi)的case選擇,找到對應(yīng)的常量選擇匹配。

? ? ? ? 如果找到了對應(yīng)的匹配選擇,執(zhí)行對應(yīng)的處理方式。

? ? ? ? 如果沒有找到匹配選擇,執(zhí)行default里面的處理方式。

? ? 這里【break】關(guān)鍵字用于結(jié)束switch case運行


1.2 switch - case使用注意事項

1. 在switch - case結(jié)構(gòu)中,有且只能執(zhí)行case,或者default之后的語句。如果存在在case 和default之外的語句,是無法執(zhí)行的,對于Java而言是無效代碼。

? ? unreachable code

?

2. 在switch - case結(jié)構(gòu)中,如果存在case或者default選擇缺少break操作。代碼會繼續(xù)運行到下一個break,或者大括號 }(switch case結(jié)尾大括號) 終止switch - case?。?/p>

?

3. 在switch - case結(jié)構(gòu)中,不允許出現(xiàn)相同的case選項,代碼無法進行操作選擇,因為所有case選擇是平級的

?

4. 在switch - case結(jié)構(gòu)中,default可以省略,代碼編譯不會受到影響,沒有語法錯誤。但是失去switch case自帶的一種異常情況處理方式。

? ? AJCG阿里巴巴Java開發(fā)規(guī)范中,是不推薦省略default

1.3 總結(jié)

1. switch case結(jié)構(gòu)和if else if 結(jié)構(gòu)類似,兩者是可以互通

2. if else if結(jié)構(gòu)中可以處理范圍性數(shù)據(jù),處理的數(shù)據(jù)區(qū)間更加廣泛

3. switch case處理數(shù)據(jù)明確性更強,處理針對性選擇比較合適

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

2.1 為什么要用循環(huán)

生活中很多重復(fù)的事情,周而復(fù)始

? ? 吃飯,睡覺,擼貓,學(xué)習(xí),上課....

?

代碼中一定存在需要循環(huán)出現(xiàn)的情況,如果不使用循環(huán),會導(dǎo)致以下一些問題

? ? 1. 閱讀性極差?。?!

? ? 2. 維護性極差?。?!

? ? 3. 代碼冗余!?。?/p>

2.2 while循環(huán)


執(zhí)行流程:

? ? 當(dāng)前程序運行到while循環(huán)結(jié)構(gòu)時,首先判斷while之后的小括號里面的循環(huán)條件是否為true,如果為true,執(zhí)行循環(huán)體,在回到循環(huán)條件判斷,直到循環(huán)條件為false,終止循環(huán)?。?!

*

2.3 do - while循環(huán)

執(zhí)行流程:

? ? 當(dāng)程序執(zhí)行到do - while循環(huán)結(jié)構(gòu)時,首先執(zhí)行一次循環(huán)體(循環(huán)條件變更),再來判斷while中循環(huán)條件判斷是否為true,如果為true,繼續(xù)執(zhí)行,如果為false,終止循環(huán)。

【注意】

? ? 1. while(condition);;;;;;;;;;;;;;;;;;;;;;;;;;; 這里英文分號

? ? 2. 執(zhí)行do - while需要明確第一次循環(huán)會不會存在隱患


總結(jié)

1. 循環(huán)過程中最核心的內(nèi)容就是循環(huán)變量,需要對于循環(huán)變量的執(zhí)行的過程中數(shù)值變量完全掌握?。?!如果無法明確循環(huán)的次數(shù),循環(huán)變量的值,循環(huán)的過程,可以將循環(huán)代碼中變量的變更過程記錄。

?

2. 循環(huán)過程中需要注意無限循環(huán)問題,控制無限循環(huán)問題的出現(xiàn)。一定要保證循環(huán)條件有效性或者代碼中存在一個跳出循環(huán)的機制。

?

3. do while循環(huán)中,第一次循環(huán)體的執(zhí)行是沒有經(jīng)過任何的條件判斷的,需要注意!

【已知,可控】

?

4. while和do while循環(huán)結(jié)構(gòu)是可以進行互換的。

?

5. 然后在while和do while之間考慮使用的情況下,一般推薦使用while循環(huán)。但是不代表do while沒有實際的使用效果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 控制流 Swift提供了各種控制流程語句。這些包括while循環(huán)多次執(zhí)行任務(wù); if,guard以及switch基...
    Fuuqiu閱讀 438評論 0 0
  • Swift 提供了類似 C 語言的流程控制結(jié)構(gòu),包括可以多次執(zhí)行任務(wù)的for和while循環(huán),基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 782評論 1 1
  • [The Swift Programming Language 中文版]本頁包含內(nèi)容: Swift提供了多種流程控...
    風(fēng)林山火閱讀 689評論 0 0
  • Java byte code 的學(xué)習(xí)意義 為啥要學(xué)java bytecode,這就跟你問我已經(jīng)會python了為...
    shanggl閱讀 1,866評論 0 3
  • 心理學(xué)上認(rèn)為,“擔(dān)憂就是變相的詛咒”,當(dāng)你將過多的負(fù)面情緒傾注其中時,甚至?xí)霈F(xiàn)“墨菲定律”,即越不希望發(fā)生的事情...
    丹青醫(yī)姐閱讀 73評論 0 1

友情鏈接更多精彩內(nèi)容