先用一張圖來說明今天的大綱
概念:如果代碼里沒有流程控制,程序是按照書寫的格式從上而下一行一行執(zhí)行的, 一條語句執(zhí)行完之后繼續(xù)執(zhí)行下一條語句,中間沒有判斷和跳轉,直到程序的結束。 如圖:
概念:如果使用程序描述“如果今天是周一,就上班,如果今天是周二就逛街,如果今天是周三就去公園... ...”。顯然使用順序結構是搞不定的。 因為此時程序具有多個條件,需要通過條件判斷來決定程序具體做什么,那怎么辦呢?通過判斷條件來做選擇的語句,我們稱為選擇語句或分支語句。 現(xiàn)在,我們一起來學習選擇結構,選擇結構有兩種:分別是if和switch。
if語句使用boolean表達式或boolean值作為選擇條件,有三種結構形式: -------------------------------------------------------------------- 第一種結構: if(boolean條件) { 代碼/當boolean條件結果為true的時候,就執(zhí)行這里的代碼. } 明天不下雨,我們就去公園. 注意: 1):不能寫出:if(boolean條件);{} 2):若if的語句只有一句話,其實可以省略{},即是如此,也必須得寫{}. 3):對于boolean類型的表達式,不要使用 boolean表達式==true的寫法. 總之按照標準if語句來寫就可以了,要從基礎做好規(guī)范額!?。?/p> 第二種結構:if-else語句. 如果......,否則...... if(boolean條件) { 當boolean條件結果為true的時候,就執(zhí)行這里的代碼. } else { 當boolean條件結果為false的時候,就執(zhí)行這里的代碼. } ------------------------------ if-else結構和三元運算符的區(qū)別: 1):一個是結構,一個運算表達式. 2):運算表達式的是必須得有一個結果的. 3):從功能上,從語義上是相同的. ------------------------------ 不能單獨使用else,必須先有if,再有else. 來來來,在講解下一個if結構前來個需求,大家知道如何完成嗎?? 需求:考試成績大于90分,就打印優(yōu),如果大于80分,打印良,如果大于70分,打印中,其他情況打印多多努力。對于這個案例,如何解決. 這種情況可以使用下面if-elseif-else語句. if語句的第三種結構:if-elseif-else語句. if(boolean條件1) { 當條件1為true的時候,執(zhí)行這里. } else if(boolean條件2) { 當條件2為true的時候,執(zhí)行這里 } else if(boolean條件3) { 當條件3為true的時候,執(zhí)行這里 } else { 上述所有條件,都不滿足,就執(zhí)行這里. } -圖片鎮(zhèn)樓--------------- 上面需求答案如下:
上述判斷today變量的例子,從對與錯的角度思考,沒問題.但是,程序的可讀性不好,不太簡潔.----->switch語句(更簡單,功能相同) switch的語法結構(和if-elseif-else的語義相同): --------------------------------- switch(整型表達式) { case A值: 語句1; break;//結束 case B值: 語句2; break; case C值: 語句3; break; default: 上述所有的結果值都不滿足 語句. } 上面需求用switch解決如下: switch的語法分析以及注意: 1):switch中的表達式的結果/類型,必須是整數(shù)類型. 整數(shù)類型:byte,short,char,int.沒有l(wèi)ong. 從Java7開始,switch也支持String類型. 2):switch語句,一旦找到入口,就會進入,并執(zhí)行功能語句,后面的case不再判斷,除非語句break,或return或則執(zhí)行完成,才會停下來-----穿透. 3):default表示,當case中的值都不成立的時候,才執(zhí)行,一般的放在最后. ----------------------------------抉擇------------------------------------- if和switch都是選擇語句/條件語句,那到底什么時候選擇使用if,什么時候選擇使用switch. 分析各自的優(yōu)缺點: 1): 對于所有的條件語句,if都可以完成. 2): swtich語句,只能正對于結果為數(shù)值的情況做判斷. 3): 當if中條件的結果是數(shù)值的時候,使用switch更簡單.
故事:話說唐僧師徒四人還在21世紀繼續(xù)闖關,一天,師徒四人來到數(shù)字王國: 第一關:Boss叫傻乎乎的唐僧叫500聲帥哥。可是唐僧平時吃素,體力不好,叫200聲就暈了,咋辦,悟空馬上變了個復讀機出來,錄音,播放。 第二關:Boss覺得唐僧好欺負再叫他從1數(shù)到100。此時復讀機用不上來了,咋辦? 第三關:求100以內正整數(shù)和? 于是,唐僧算1到25的和,悟空算26到50的和,八戒算51到75的和,沙僧算76到100的和。 第四關:求1000以內正整數(shù)和? 于是,唐僧算1到250的和,悟空算251到500的和,八戒算501到750的和,沙僧算751到1000的和。 第五關:求10000以內正整數(shù)和? ブプヘベ崩潰ingペホボポ。。。。。 ------------------------------------------------- 案例:叫500聲帥鍋 案例:從1數(shù)到100 案例:幫大圣解決問題,計算100以內的正整數(shù)和。 在講解案例之前我們首先把循環(huán)結構的分類說一下: 三大循環(huán)之while循環(huán): 語法: while(boolean表達式) { 若boolean表達式結果為true,則執(zhí)行這里.循環(huán)體 } 注意:先判斷boolean表達式. 三大循環(huán)之do while循環(huán): 語法: do { 循環(huán)體 }while(boolean表達式); 注意: do while,不管boolean表達式對與錯,先執(zhí)行一次循環(huán)體. 即使boolean表達式為false,do while也會執(zhí)行一次. 推論: 無論條件如何,dowhile至少會執(zhí)行一次. 三大循環(huán)之for循環(huán): 語法: for(初始化語句;boolean表達式;循環(huán)之后的操作語句) { 循環(huán)體 } 初始化語句:定義變量,賦初始值; boolean表達式:判斷條件,若條件為true,則進入循環(huán)體,若為false,則跳過循環(huán). 循環(huán)之后的操作語句: 變量的自增/自減操作. 執(zhí)行順序: 1):初始化語句. 2):boolean表達式: true: GOTO 3 false:跳過循環(huán),不執(zhí)行循環(huán)體 3):執(zhí)行循環(huán)體. 4):循環(huán)之后的操作語句, GOTO 2. 上面三個案例用循環(huán)結構解決如下:(看不清晰可以點擊大圖) 三大循環(huán)語句都一樣,僅僅只是語法結構上不一樣而已. 把while循環(huán)和for循環(huán)轉換. 提示: 三大循環(huán),是可以互換的,一般情況下,要是指定次數(shù)的循環(huán),選用for循環(huán)要方便點。 一般的,習慣上選擇i、j、k作為循環(huán)變量。
break語句:結束當前所在的循環(huán). 注意:break之后的語句,執(zhí)行不到,若編寫了,則語法報錯. continue語句:表示跳過的這一次當前循環(huán),繼而進行下一次循環(huán). 注意:contine之后的語句,執(zhí)行不到,若編寫了,則語法報錯. return語句:表示結束循環(huán)所在的方法,方法都結束了,循環(huán)結構自然也就結束了。 -------------下面控制外層循環(huán)比較少用,即基本不用--------------- 控制外層循環(huán):此時就得使用標簽了,標簽就是給某個循環(huán)起的別名,不過該別名得滿足標識符的規(guī)范。 若要控制外層循環(huán),就在break或continue后面跟上循環(huán)的別名就OK了 如: break <標簽名>; 一張圖總結今天內容:
親愛的JAVA醬們: 學習有困難或者想獲取JAVA資料請加JAVA學習交流群 374320282或是加 小雨QQ746635765(←長按可復制) |
|