
??前言
邏輯控制是現(xiàn)代編程語言中的基本概念之一,它允許程序根據(jù)特定條件來決定執(zhí)行流程,使程序能夠根據(jù)不同情況做出相應(yīng)的處理。在編寫程序時(shí),合理運(yùn)用邏輯控制可以提高代碼的靈活性和可擴(kuò)展性,使程序更加健壯且適應(yīng)性強(qiáng)。本文將詳細(xì)介紹邏輯控制的概念及常用的順序結(jié)構(gòu)、分支結(jié)構(gòu)(包括if語句和switch語句)的使用方法,旨在幫助讀者全面掌握邏輯控制的核心概念和技巧。
一、邏輯控制的概念
邏輯控制是指根據(jù)特定的邏輯條件來控制程序的執(zhí)行流程。邏輯控制可以根據(jù)不同的條件來決定程序的執(zhí)行流程,使程序能夠根據(jù)實(shí)際情況做出不同的響應(yīng),提高程序的靈活性和可擴(kuò)展性。
二、順序結(jié)構(gòu)
順序結(jié)構(gòu)比較簡(jiǎn)單,按照代碼書寫的順序一行一行執(zhí)行。
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 運(yùn)行結(jié)果
aaa
bbb
ccc
如果調(diào)整代碼的書寫順序, 則執(zhí)行順序也發(fā)生變化
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
// 運(yùn)行結(jié)果
aaa
ccc
bbb
三、分支結(jié)構(gòu)
3.1 if語句
語法格式一:
if(布爾表達(dá)式){
// 語句
}
如果布爾表達(dá)式結(jié)果為true,執(zhí)行if中的語句,否則不執(zhí)行。
比如:小明,如果這次期末考到90分,暑假就可以玩手機(jī)。
int score = 92;
if(score >= 90){
System.out.println("可以玩手機(jī)了!!!");
}
語法格式二:
if(
布爾表達(dá)式){
// 語句1
}else{
// 語句2
}
如果布爾表達(dá)式結(jié)果為true,則執(zhí)行if中語句,否則執(zhí)行else中語句。
比如:小明,如果這次考到60分以下,給你獎(jiǎng)勵(lì)暑假可以玩手機(jī),否則獎(jiǎng)兩本暑假作業(yè)。
int score = 92;
if(score >= 90){
System.out.println("吃個(gè)大雞腿!!!");
}else{
System.out.println("又多兩本作業(yè)~~~~");
}
語法格式三:
if(布爾表達(dá)式1){
// 語句1
}else if(布爾表達(dá)式2){
// 語句2
}else{
// 語句3
}
表達(dá)式1成立,執(zhí)行語句1,否則表達(dá)式2成立,執(zhí)行語句2,否則執(zhí)行語句3
比如:考慮到學(xué)生自尊,不公開分?jǐn)?shù)排名,因此:
- 分?jǐn)?shù)在 [90, 100] 之間的,為優(yōu)秀
- 分?jǐn)?shù)在 [80, 90) 之前的,為良好
- 分?jǐn)?shù)在 [70, 80) 之間的,為中等
- 分?jǐn)?shù)在 [60, 70) 之間的,為及格
- 分?jǐn)?shù)在 [ 0, 60) 之間的,為不及格
- 錯(cuò)誤數(shù)據(jù)
按照上述辦法通知學(xué)生成績(jī)
if(score >= 90){
System.out.println("優(yōu)秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else if(score >= 0 && score < 60){
System.out.println("不及格");
}else{
System.out.println("錯(cuò)誤數(shù)據(jù)");
}
3.2 if習(xí)題鞏固
- 判斷一個(gè)數(shù)字是奇數(shù)還是偶數(shù)
int num = 10;
if (num % 2 == 0) {
System.out.println("num 是偶數(shù)");
} else {
System.out.println("num 是奇數(shù)");
}
- 判斷一個(gè)數(shù)字是正數(shù),負(fù)數(shù),還是零
int num = 10;
if (num > 0) {
System.out.println("正數(shù)");
} else if (num < 0) {
System.out.println("負(fù)數(shù)");
} else {
System.out.println("0");
}
- 判斷一個(gè)年份是否為閏年
int year = 2000;
if (year % 100 == 0) {
// 判定世紀(jì)閏年
if (year % 400 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
} else {
// 普通閏年
if (year % 4 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
}
3.3 細(xì)節(jié)注意項(xiàng)
- 代碼風(fēng)格
// 風(fēng)格1-----> 推薦
int x = 10;
if (x == 10) {
// 語句1
} else {
// 語句2
}
// 風(fēng)格2
int x = 10;
if (x == 10)
{
// 語句1
} else
{
// 語句2
}
雖然兩種方式都是合法的, 但是 Java 中更推薦使用風(fēng)格1, { 放在 if / else 同一行. 代碼跟緊湊
- 分號(hào)問題
int x = 20;
if (x == 10);
{
System.out.println("hehe");
}
// 運(yùn)行結(jié)果
hehe
此處多寫了一個(gè) 分號(hào), 導(dǎo)致分號(hào)成為了 if 語句的語句體, 而 { } 中的代碼已經(jīng)成為了和一個(gè) if 無關(guān)的代碼塊
- 懸垂else問題
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
if / else 語句中可以不加 大括號(hào) . 但是也可以寫語句(只能寫一條語句). 此時(shí) else 是和最接近的 if 匹配,但是實(shí)際開發(fā)中我們 不建議 這么寫. 最好加上大括號(hào)
3.4 switch語句
基本語法:
switch(表達(dá)式){
case 常量值1:{
語句1;
[break;]
}
case 常量值2:{
語句2;
[break;]
}
...
default:{
內(nèi)容都不滿足時(shí)執(zhí)行語句;
[break;]
}
}
執(zhí)行流程:
- 先計(jì)算表達(dá)式的值
- 和case依次比較,一旦有響應(yīng)的匹配就執(zhí)行該項(xiàng)下的語句,直到遇到break時(shí)結(jié)束
- 當(dāng)表達(dá)式的值沒有與所列項(xiàng)匹配時(shí),執(zhí)行default
代碼示例:
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("輸入有誤");
break;
}
3.5 switch注意事項(xiàng)
-
多個(gè)case后的常量值不可以重復(fù)
-
switch的括號(hào)內(nèi)只能是以下類型的表達(dá)式:
- 基本類型:byte、char、short、int,注意不能是long類型
- 引用類型:String常量串、枚舉類型
double num = 1.0;
switch(num) {
case 1.0:
System.out.println("hehe");
break;
case 2.0:
System.out.println("haha");
break;
}
// 編譯出錯(cuò)
Test.java:4: 錯(cuò)誤: 不兼容的類型: 從double轉(zhuǎn)換到int可能會(huì)有損失
switch(num) {
^
1 個(gè)錯(cuò)誤
- break 不要遺漏, 否則會(huì)失去 “多分支選擇” 的效果
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
// break;
case 2:
System.out.println("星期二");
break;
}
// 運(yùn)行結(jié)果
星期一
星期二
- switch 不能表達(dá)復(fù)雜的條件
// 例如: 如果 num 的值在 10 到 20 之間, 就打印 hehe
// 這樣的代碼使用 if 很容易表達(dá), 但是使用 switch 就無法表示.
if (num > 10 && num < 20) {
System.out.println("hehe");
}
- switch 雖然支持嵌套, 但是很丑,一般不推薦
int x = 1;
int y = 1;
switch(x) {
case 1:
switch(y) {
case 1:
System.out.println("hehe");
break;
}
break;
case 2:
System.out.println("haha");
break;
}
小結(jié):
代碼的美觀程度也是一個(gè)重要的標(biāo)準(zhǔn). 畢竟這是看臉的世界
綜上所述,不難發(fā)現(xiàn), switch 的使用局限性是比較大的文章來源:http://www.zghlxwxcb.cn/news/detail-846838.html
- switch 雖然支持嵌套, 但是很丑,一般不推薦
```java
int x = 1;
int y = 1;
switch(x) {
case 1:
switch(y) {
case 1:
System.out.println("hehe");
break;
}
break;
case 2:
System.out.println("haha");
break;
}
小結(jié):
代碼的美觀程度也是一個(gè)重要的標(biāo)準(zhǔn). 畢竟這是看臉的世界
綜上所述,不難發(fā)現(xiàn), switch 的使用局限性是比較大的
文章來源地址http://www.zghlxwxcb.cn/news/detail-846838.html
到了這里,關(guān)于【java探索之旅】邏輯控制掌握 順序結(jié)構(gòu) 分支語句的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!