
從零開始學(xué)Java封面9.jpg
程序執(zhí)行的過(guò)程,我們可以把它認(rèn)為是一個(gè)流,實(shí)際的業(yè)務(wù)需求會(huì)根據(jù)不同的情況,來(lái)控制程序不同的流轉(zhuǎn)。這篇文章來(lái)討論其中的一種程序流轉(zhuǎn)情況,選擇控制流轉(zhuǎn)。Java 中對(duì)應(yīng)的結(jié)構(gòu)為控制結(jié)構(gòu)。
1. if 結(jié)構(gòu)
第一種情況,簡(jiǎn)單的判斷,意思是:如果滿足某個(gè)條件,就會(huì)執(zhí)行。
如果(條件滿足) {
做某些事情
}
int age = 20;
if (age > 18) {
System.out.println("你有投票權(quán)利");
}
執(zhí)行結(jié)果:
你有投票權(quán)利
也可以簡(jiǎn)寫,但是不建議這樣做,因?yàn)檎Z(yǔ)句比較多的情況下,程序的可讀性不好。
if (age > 18) System.out.println("你有投票權(quán)利");
2. if - else 結(jié)構(gòu)
如果滿足A條件,就執(zhí)行 a 操作,否則執(zhí)行 b操作。
如果(滿足A) {
執(zhí)行 a 操作
} 否則 {
執(zhí)行 b 操作
}
實(shí)例:
int age = 17;
if (age > 18) {
System.out.println("你有投票權(quán)利。");
} else {
System.out.println("對(duì)不起,你還未到投票的年齡。");
}
結(jié)果輸出:
對(duì)不起,你還未到投票的年齡。
3. if -else if - else 結(jié)構(gòu)
如果滿足 A 條件,執(zhí)行 a操作,如果滿足 B 條件,執(zhí)行 b操作,否則都執(zhí)行 c操作。
如果 (滿足A) {
執(zhí)行 a 操作
} 如果 (滿足B) {
執(zhí)行 b 操作
} 否則 {
執(zhí)行 c 操作
}
實(shí)例:根據(jù)年齡收費(fèi)的游樂(lè)場(chǎng),規(guī)則為
- 4 歲以下免費(fèi)
- 4 到 18 歲收費(fèi) 40 元
- 18 歲(含 18)以上收費(fèi) 70 元
Java 程序?qū)崿F(xiàn):
int age = 13;
if (age < 4) {
System.out.println("你需要消費(fèi)為 0 元");
} else if (age < 18) {
System.out.println("你需要消費(fèi)為 40 元");
} else {
System.out.println("你需要消費(fèi)為 70 元");
}
可以使用多個(gè) else if:
int age = 13;
int price;
if (age < 4) {
price = 0;
} else if (age < 18) {
price = 40;
} else if (age < 40) {
price = 60
} else {
price = 70;
}
System.out.println("你需要消費(fèi)為: ¥" + price);
else 可以省略:
int age = 13;
int price;
if (age < 4) {
price = 0;
} else if (age < 18) {
price = 40;
} else if (age < 40) {
price = 60
}
System.out.println("你需要消費(fèi)為: ¥" + price);
4. switch 結(jié)構(gòu)
一個(gè)變量,當(dāng)?shù)扔诓煌闹担瑘?zhí)行不同的操作。
if-else if 語(yǔ)句表達(dá):
int month = 5;
if (month == 5) {
System.out.println("5月");
} else if (month = 6) {
System.out.println("6月");
} else if (month = 7) {
System.out.println("7月");
} else if (month = 8) {
System.out.println("8月");
} else {
System.out.println("其他月");
}
使用 switch 結(jié)構(gòu):
int month = 5;
switch(month) {
case 5 :
System.out.println("5月");
break;//可選
case 6 :
System.out.println("6月");
break;//可選
case 7 :
System.out.println("7月");
break; //可選
case 8 :
System.out.println("8月");
break;//可選
default ://可選
System.out.println("其他月");
}
switch語(yǔ)句具有如下規(guī)則:
-
switch語(yǔ)句中的變量類型只能為String、byte、short、int或者char。 -
switch語(yǔ)句可以擁有多個(gè)case語(yǔ)句,每個(gè)case后面跟一個(gè)要比較的值和冒號(hào)。 -
case語(yǔ)句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。扣扣交流群:468439140 - 當(dāng)變量的值與case語(yǔ)句的值相等時(shí),那么
case語(yǔ)句之后的語(yǔ)句開始執(zhí)行,直到break語(yǔ)句出現(xiàn)才會(huì)跳出switch語(yǔ)句。 - 當(dāng)遇到
break語(yǔ)句時(shí),switch語(yǔ)句終止。程序跳轉(zhuǎn)到switch語(yǔ)句后面的語(yǔ)句執(zhí)行。case語(yǔ)句不必須要包含break語(yǔ)句。如果沒(méi)有break語(yǔ)句出現(xiàn),程序會(huì)繼續(xù)執(zhí)行下一條case語(yǔ)句,直到出現(xiàn)break語(yǔ)句。 -
switch語(yǔ)句可以包含一個(gè)default分支,該分支必須是switch語(yǔ)句的最后一個(gè)分支。default在沒(méi)有case語(yǔ)句的值和變量值相等的時(shí)候執(zhí)行。default分支不需要break語(yǔ)句。