选择分支结构
if選擇結(jié)構(gòu)
if選擇結(jié)構(gòu)有多種運(yùn)用方式:單分支if選擇結(jié)構(gòu)、雙分支if選擇結(jié)構(gòu)、多分支if選擇結(jié)構(gòu)、if選擇結(jié)構(gòu)嵌套。
單分支if選擇結(jié)構(gòu)
? 語法結(jié)構(gòu):
? ? ????????? ?if(條件){
? ? ? ? ? ? ? ????????代碼塊
? ? ? ??????????}?
注意:條件不管多么簡單還是多么復(fù)雜,都只能為布爾值?。
如果代碼塊只有一條語句,代碼塊所在的{}可以省略,但不建議 。
//張浩Java成績大于90分,老師獎(jiǎng)勵(lì)他iPhone6s ,該怎么做呢? //聲明一個(gè)變量javaScore用來存儲(chǔ)張浩的Java成績double javaScore = 9; //根據(jù)張浩的java成績判斷他能不能拿到獎(jiǎng)勵(lì)if(javaScore>=90){System.out.println("獎(jiǎng)勵(lì)一部iPhone6S");}System.out.println("繼續(xù)努力");雙分支if選擇結(jié)構(gòu)
????????? 語法結(jié)構(gòu):
?? ??? ? ? ? ? ? ? if(條件){
? ? ? ? ? ? ? ? ? ? ? ?代碼塊1;
? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ??? ? ? ? ?代碼塊2;
?? ??? ? ? ? ? ? ?}
? 執(zhí)行規(guī)律:
? ? ? 如果條件為true,執(zhí)行代碼塊1,執(zhí)行完之后,執(zhí)行if-else結(jié)構(gòu)后面的代碼
? ? ? 如果條件為false,執(zhí)行else{}里面的代碼塊2,執(zhí)行完之后,執(zhí)行if-else結(jié)構(gòu)后面的代碼
?
多重if選擇結(jié)構(gòu)
?語法結(jié)構(gòu):
? ? ? ? ? ?if(條件1){
? ? ? ? ? ? ?? ? ? 代碼塊1
? ? ? ? ? ?}else if(條件2){
? ? ? ? ? ? ? ? ? ?代碼塊2
? ? ? ? ? ?}else if(條件3){
? ? ? ? ????????? ?代碼塊3
? ? ? ? ? ?}else?if{
? ? ? ? ?..............
? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ?代碼塊n
? ? ? ? ? ?}
執(zhí)行規(guī)律:
? ? ? ? ?(1)先判斷條件1,如果條件1為true,執(zhí)行代碼塊1,執(zhí)行完之后結(jié)束整個(gè)if-else-if結(jié)構(gòu),執(zhí)行該結(jié)構(gòu)后面的代碼
? ? ? ? ?(2)如果條件1為false,繼續(xù)往下判斷條件2,如果條件2為true, 執(zhí)行代碼塊2,執(zhí)行完之后結(jié)束整個(gè)if-else-if結(jié)構(gòu),執(zhí)行該結(jié)構(gòu)后面的代碼
? ? ? ? ?(3)如果條件2為false,繼續(xù)往下判斷條件3,如果條件3為true,執(zhí)行代碼塊3,執(zhí)行完之后結(jié)束整個(gè)if-else-if結(jié)構(gòu),執(zhí)行該結(jié)構(gòu)后面的代碼
? ? ? ? ?(4)......
? ? ? ? ?(5)如果所有的條件都為false,執(zhí)行else里面的代碼塊n
?注意:
? ? ? ? (1)條件為布爾值
? ? ? ? (2)else if可以有1個(gè)、2個(gè)、多個(gè)
? ? ? ? (3)else也可以省略,如果所有的條件不成立,也沒有else,那么整個(gè)if-else-if結(jié)構(gòu)不執(zhí)行
? ? ? ? (4)多重if選擇結(jié)構(gòu)中各個(gè)條件的順序不可以任意排列,要求從上往下由嚴(yán)格到寬松。? ? ? ?
嵌套if選擇結(jié)構(gòu)
在一個(gè)if選擇結(jié)構(gòu)中存在另外一個(gè)if選擇結(jié)構(gòu)
? 語法結(jié)構(gòu):
? ? ? ? ? ? ? ?if(條件1){
? ? ? ? ? ? ? ? ? 代碼塊1
? ? ? ? ? ? ?????????? if(條件2){
? ? ? ? ? ? ? ? ? ????????代碼塊2
? ? ?? ? ? ? ????????? }else{
? ? ? ? ??? ? ? ? ????????代碼塊3
? ? ? ? ? ? ????????? ?}
? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? 代碼塊4
? ? ? ? ? ? ? }
執(zhí)行規(guī)律:
? ? ? ? ? ? 判斷條件1,條件1為true,執(zhí)行代碼塊1,進(jìn)一步判斷條件2,條件為true,執(zhí)行代碼塊2,條件2為false,執(zhí)行代碼塊3,執(zhí)行完之后,結(jié)束整個(gè)所有的if結(jié)構(gòu)。
? ? ? ? ? ??條件1為false,執(zhí)行下面else里的代碼塊4。
Scanner類的使用:
?? ?第一步:導(dǎo)包
?? ??? ?import java.util.Scanner;或者import java.util.*;
?? ?第二步:創(chuàng)建Scanner類對(duì)象
?? ??? ?Scanner input = new Scanner(System.in);
?? ?第三步:獲取數(shù)據(jù)
?? ??? ?int num = input.nextInt(); ?獲取int類型數(shù)據(jù)
?? ??? ?double num2 = input.nextDouble(); ?獲取double類型數(shù)據(jù)
?? ??? ?String str= input.next(); ?獲取String類型數(shù)據(jù)
switch選擇結(jié)構(gòu)
? switch(表達(dá)式){
? ? ? ? ? ? ? case 常量值1:
? ? ? ? ? ? ? ? ?代碼語句;
? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? case 常量值2:
? ? ? ? ? ? ? ? ? 代碼語句;
? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? case 常量值3:
? ? ? ? ? ? ? ? ? 代碼語句;
? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ?.........
? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? 代碼語句;
? ? ? ? ? ? ? ? ? ?break;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????}?
執(zhí)行規(guī)律:
? ? ? ? ? ? ?根據(jù)表達(dá)式的值,來與case后面的常量值進(jìn)行匹配
? ? ? ? ? ??匹配上哪個(gè)常量值,就執(zhí)行該case里面的代碼語句,代碼語句執(zhí)行完,執(zhí)行break,退出整個(gè)Switch選擇結(jié)構(gòu),執(zhí)行Switch選擇結(jié)構(gòu)后面的代碼
? ? ? ?? ? ? 如果表達(dá)式的值與所有的case常量值不匹配,則執(zhí)行default里面的代碼語句,執(zhí)行完執(zhí)行break語句,退出整個(gè)Switch選擇結(jié)構(gòu)
?注意事項(xiàng):
? ? ? ? ? ? ?(1)表達(dá)式的值可以是int、short、byte、char、枚舉類型、String(JDK7及以后版本可以使用)
? ? ? ? ? ? ?(2)case常量值不能相同
? ? ? ? ? ? ?(3)default語句可以在任意位置,一般來說寫在最后,也可以省略不寫
? ? ? ? ? ? ?(4)break的作用是結(jié)束整個(gè)Switch選擇結(jié)構(gòu),如果不寫,會(huì)造成“case穿透”現(xiàn)象,此現(xiàn)象可以合理使用
? ? ? ? ?
總結(jié)
- 上一篇: BIOS知识枝桠—— Protocol
- 下一篇: 大数据与个人隐私的平衡:懂你,但不认识你