四:选择结构
目錄
01、流程概述
02、順序結構
03、選擇結構(分支結構)
3.1、if選擇結構
? ? ? ?3.1.1、單分支If選擇結構
???????3.1.2、雙分支if-else選擇結構
???????3.1.3、多分支if-else-if選擇結構
???????3.1.4、If選擇結構的嵌套
3.2、switch-case選擇結構
04、循環(huán)結構
4.1、for循環(huán)
4.2、while循環(huán)
4.3、do-while循環(huán)
4.4、嵌套循環(huán)
4.5、break、continue的使用
01、流程概述
02、順序結構
03、選擇結構(分支結構)
? ? ? ? 選擇結構(分支結構)包括:
? ? ? ? ? ? ? ?(1) if選擇結構
? ? ? ? ? ? ? ? ? ? ? ? 單分支if選擇結構
? ? ? ? ? ? ? ? ? ? ? ? 雙分支if-else選擇結構
? ? ? ? ? ? ? ? ? ? ? ? 多分支if-else-if選擇結構
? ? ? ? ? ? ? ? (2)Switch-case選擇結構
(1)單分支if選擇結構If(條件){//代碼塊}(2)雙分支If選擇結構:if(條件){//代碼塊1}else{//代碼塊2}(3)多分支if選擇結構:If(條件1){//代碼塊1}else if(條件2){//代碼塊2}else if(條件3){//代碼塊3}......}else{//代碼塊n}3.1、if選擇結構
? ? ? ?3.1.1、單分支If選擇結構
?(1)語法結構
if(條件){//代碼塊}(2) 執(zhí)行規(guī)律
- ????????如果條件為true,執(zhí)行{}中的代碼,執(zhí)行完成,繼續(xù)往下執(zhí)行{}后面的代碼
- ????????如果條件為false,執(zhí)行{}后面的代碼
(3)注意:
- ????????條件不管多么簡單還是多么復雜,都只能是布爾值
(4)案例:
? ? ? ? 案例1:張浩Java成績大于90分,老師獎勵他iPhone6s ,該怎么做呢?
????????案例2:
? ? ? ? ? ? ? ? /*
?? ??? ? ????????* 張浩Java成績大于90分,并且音樂成績大于80分時,
?? ??? ? ????????* 或者Java成績等于100分,音樂成績大于70分時,
?? ??? ? ????????*?老師獎勵他,該怎么做呢?
?? ??? ? ????????* */
? ? ? ? 案例3:
??????????????????/*
?? ??? ????????? * 如果張浩Java考試成績大于90分,老師就獎勵他一個iPhone6s?
?? ??? ????????? * 否則老師就罰他蹲馬步
?? ??? ????????? */
???????3.1.2、雙分支if-else選擇結構
(1)語法結構
/* if(條件){* //代碼塊1;* }else{* //代碼塊2;* }*/(2)執(zhí)行規(guī)律
- 如果條件為true,執(zhí)行代碼塊1,執(zhí)行完之后,執(zhí)行if-else結構后面的代碼
- 如果條件為false,執(zhí)行else{}里面的代碼塊2,執(zhí)行完之后,執(zhí)行if-else結構后面的代碼
(3)注意:
- ?條件為布爾值
- 如果代碼塊1只有一條語句,代碼塊1所在的{}可以省略,但不建議
(4)案例:
? ? ? ? 案例1:
?? ??? ?/*
?? ??? ? * 如果張浩Java考試成績大于等于90分,老師就獎勵他一個iPhone6s?
?? ??? ? * 否則老師就罰他蹲馬步
?? ??? ? */
???????3.1.3、多分支if-else-if選擇結構
(1)語法結構
/** 多重if選擇結構---》if-else-if選擇結構* 語法結構:* if(條件1){* //代碼塊1* }else if(條件2){* //代碼塊2* }else if(條件3){* //代碼塊3* }....* * }else{* //代碼塊n* }*/?(2)執(zhí)行規(guī)律
?(3)注意:?
????????(1)條件為布爾值
????????(2)else if可以有1個、2個、多個
????????(3)else也可以省略,如果所有的條件不成立,也沒有else,那么整個if-else-if結構不執(zhí)行
????????(4)多重if選擇結構中各個條件的順序不可以任意排列,要求從上往下由嚴格到寬松。?
?(4)案例
? ? ? ? 案例1:
????????????????/*
?? ??????????? ? * 對學員的考試成績評測
?? ??????????? ? * 成績>=80 :良好?
?? ??????????? ? * 成績>=60 :中等
?? ??????????? ? * 成績<60 ? :差?
?? ??????????? ? */? ?
???????3.1.4、If選擇結構的嵌套
(1)語法結構
/* if(條件1){* //代碼塊1* if(條件2){* //代碼塊2* }else{* //代碼塊3* }* }else{* //代碼塊4* }*/(2)執(zhí)行規(guī)律
- 判斷條件1,條件1為true,執(zhí)行代碼塊1,進一步判斷條件2,條件為true,執(zhí)行代碼塊2,條件2為false,執(zhí)行代碼塊3,執(zhí)行完之后,結束整個所有的if結構
- ?條件1為falae,執(zhí)行下面else里的代碼塊4
(3)案例:
? ????????? 案例1:此題使用到Scanner類對象、equals方法
?????????????????/*
?? ??? ????????? * 學校舉行運動會,百米賽跑跑入10 秒內的學生有資格進決賽,
?? ??????????? ? * 根據(jù)性別分別進入男子組和女子組
? ? ? ? ? ? ? ? ?*
?? ??? ????????? */
1、練習1:?
練習1: /* if選擇結構嵌套練習:* 根據(jù)天氣決定活動類型:* 晴天:* 28°以上:室內游泳* 28°以下:室外籃球* 雨天:* 25°以上:室內羽毛球* 25°以下:在家敲代碼* 其它天氣:* 在家睡覺*/package com.bdqn.demo02; //導入包 import java.util.Scanner; public class Demo07 {public static void main(String[] args) {//創(chuàng)建Sanner類對象Scanner input = new Scanner(System.in);System.out.println("請輸入今日天氣:");//從鍵盤獲取數(shù)據(jù)(天氣)String tianQi = input.next();System.out.println("請輸入今日溫度值:");//從鍵盤獲取數(shù)據(jù)(溫度)double wenDu = input.nextDouble();/** 字符串的比較使用tianQi.equals("晴天");* 解析:從鍵盤獲取天氣,當獲取到的tianQi值為“晴天”時,通過tianQi.equals("晴天");進行比較,則為true,反之,當從鍵盤獲取到的天氣不是晴天,則為false* * */ //判斷tianQi.equals("晴天");是否為trueif(tianQi.equals("晴天")){if(wenDu>=28){System.out.println("室內游泳");}else{System.out.println("室外籃球");}}else if(tianQi.equals("雨天")){if(wenDu>=25){System.out.println("室內羽毛球");}else{System.out.println("在家敲代碼");} }else{System.out.println("在家睡覺");} } }3.2、switch-case選擇結構
(1)語法結構
//表達式的值可以是int、short、byte、char、枚舉類型、String(JDK7及以后版本可以使用)* switch(表達式){* case 常量值1:* //代碼語句;* break;* case 常量值2:* //代碼語句;* break;* case 常量值3:* //代碼語句;* break;* .........* default:* //代碼語句;* break;(2)執(zhí)行規(guī)律
- 根據(jù)表達式的值,來與case后面的常量值進行匹配
- 匹配上哪個常量值,就執(zhí)行該case里面的代碼語句,代碼語句執(zhí)行完,執(zhí)行break,退出整個Switch選擇結構,執(zhí)行Switch選擇結構后面的代碼
- 如果表達式的值與所有的case常量值不匹配,則執(zhí)行default里面的代碼語句,執(zhí)行完執(zhí)行break語句,退出整個Switch選擇結構
(3)注意事項
- (1)表達式的值可以是int、short、byte、char、枚舉類型、String(JDK7及以后版本可以使用)
- (2)case常量值不能相同
- (3)default語句可以在任意位置,一般來說寫在最后,也可以省略不寫
- (4)break的作用是結束整個Switch選擇結構,如果不寫,會造成“case穿透”現(xiàn)象,此現(xiàn)象可以合理使用
- 案例:合理使用“case穿透”現(xiàn)象
?????????? ??? ?// 輸出每一個月份屬于哪一個季節(jié)
?? ??????????? ?// 12/1/2 冬季 3/4/5春季 6/7/8夏季 9/10/11秋季
?(4)案例:
? ? ? ? ????????案例1
? ? ? ? ?????????/* 韓嫣參加計算機編程大賽?
?? ??? ????????? * 如果第一名,參加麻省理工大學組織的1個月夏令營?
?? ??? ????????? * 如果第二名,獎勵惠普筆記本電腦一部?
?? ??? ????????? * 如果第三名,獎勵移動硬盤一個
?? ??? ????????? * 否則,不給任何獎勵
?? ??? ????????? */
04、循環(huán)結構
4.1、for循環(huán)
4.2、while循環(huán)
4.3、do-while循環(huán)
4.4、嵌套循環(huán)
4.5、break、continue的使用
總結
- 上一篇: 胖男孩麦克正如我们所知的_正如我们所知,
- 下一篇: 【数学建模】论文排版