Java 邏輯控制全面詳解
1 順序結(jié)構(gòu)
順序結(jié)構(gòu)比較簡(jiǎn)單,就是代碼一行一行的執(zhí)行,本節(jié)之前寫的所有代碼都是順序結(jié)構(gòu)。
例如:
public static void main(String[] args) { int a=10; System.out.println(a); System.out.println("hhhh"); double f=10.732; System.out.println(f);
2 分支結(jié)構(gòu)
2.1 if語句
基本語法形式1:
if(布爾表達(dá)式){
//條件滿足時(shí)的要執(zhí)行的語句
}
示例代碼1:
public static void main(String[] args) { int a=10; int b=20; if(a<b){ System.out.println(a);//a是10 b是20 a<b條件成立執(zhí)行該語句 } if(a>b){ System.out.println(b);//a是10 b是20 a>b條件不成立不執(zhí)行該語句 }
基本語法形式2:
if(布爾表達(dá)式){
//條件成立是執(zhí)行的語句
}
else{
//條件不成立時(shí)執(zhí)行的語句
}
示例代碼2:
public static void main(String[] args) { int a=10; int b=20; if(a>b){ System.out.println(a);//a是10 b是20 a>b條件不成立不執(zhí)行該語句 } else{ System.out.println(b);//a是10 b是20 a>b條件成立執(zhí)行該語句 } }
基本語法形式3:
if(布爾表達(dá)式1){
//表達(dá)式1為true,執(zhí)行的代碼
}
else if(布爾表達(dá)式2){
//表達(dá)式2為true,執(zhí)行的代碼
}
else{
//表達(dá)式1和表達(dá)式2都為falses,執(zhí)行的代碼
}
示例代碼3:
public static void main(String[] args) { int a=10; int b=10; if(a>b){ System.out.println(a);//表達(dá)式1不成立,該語句不執(zhí)行 } else if(b>a){ System.out.println(b);//表達(dá)式2不成立。該語句不執(zhí)行 } else{ System.out.print("a=b=");//表達(dá)式1和表達(dá)式2都不成立,該語句執(zhí)行 System.out.println(a);//注意:表達(dá)式成立時(shí)執(zhí)行的語句可以是多條 } }
注意事項(xiàng)1:
if語句可以嵌套使用,當(dāng)if(布爾表達(dá)式)中的表達(dá)式成立時(shí),就會(huì)執(zhí)行對(duì)應(yīng)的語句塊 ,在這個(gè)對(duì)應(yīng)的語句塊中也可以使用if語句
例如:找出三個(gè)數(shù)中最大的數(shù)
public static void main(String[] args) { int a=50; int b=70; int c=20; System.out.print("最大的數(shù)是"); if(a>b){ //a>b不成立,所以不執(zhí)行改語句塊 if(c>a){ System.out.println(c); } else{ System.out.println(a); } } else{ //a>b不成立,所以執(zhí)行該語句塊 if(c>b){ System.out.println(c);//c>b不成立,不執(zhí)行該語句 } else{ System.out.println(b);//c>b不成立,所以執(zhí)行改語句 } } }
注意事項(xiàng)2:
if語句中的布爾表達(dá)式成立時(shí),會(huì)執(zhí)行if所對(duì)應(yīng)的語句塊。如果不加“{}”時(shí),就會(huì)執(zhí)行緊隨其后的一條語句
例如:
public static void main(String[] args) { int a=10; int b=20; if(a>b) System.out.println(a);//此時(shí)if條件不成立,所以不會(huì)執(zhí)行這條語句 System.out.println(b);//雖然if條件不成立,但是這條語句已經(jīng)超出了if //語句塊,所以這條語句還會(huì)執(zhí)行 }
2.2 switch語句
基本語法格式
switch ( 整數(shù) | 枚舉 | 字符 | 字符串 ){
case 內(nèi)容 1 : {
內(nèi)容滿足時(shí)執(zhí)行語句 ;
[ break ;]
}
case 內(nèi)容 2 : {
內(nèi)容滿足時(shí)執(zhí)行語句 ;
[ break ;]
}
...
default :{
內(nèi)容都不滿足時(shí)執(zhí)行語句 ;
[ break ;]
}
示例代碼:
public static void main(String[] args) { int day=5; 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("輸入錯(cuò)誤"); break; } }
根據(jù) switch 中值的不同 , 會(huì)執(zhí)行對(duì)應(yīng)的 case 語句 . 遇到 break 就會(huì)結(jié)束該 case 語句 . 如果 switch 中的值沒有匹配的 case, 就會(huì)執(zhí)行 default 中的語句 . 我們建議一個(gè) switch 語句最好都要帶上 default.
3 循環(huán)結(jié)構(gòu)
3.1while循環(huán)
基本語法格式:
while(布爾表達(dá)式){
//要執(zhí)行的語句塊;
}
當(dāng)布爾表達(dá)式為true,循環(huán)執(zhí)行要執(zhí)行的語句塊,否則結(jié)束循環(huán)。
示例代碼:輸出1~10
public static void main(String[] args) { int i=1; while(i<=10){ System.out.println(i); i++; } }
注意事項(xiàng):
- 1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時(shí)候只能支持一條語句. 建議還是加上 { }
- 2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.
- 3. 和 if 類似, while 后面不要多寫 分號(hào), 否則可能導(dǎo)致循環(huán)不能正確執(zhí)行。
3.2 break語句
break 的功能是讓循環(huán)提前結(jié)束 .
例如:找出1~10中第一個(gè)3的倍數(shù)
public static void main(String[] args) { int i=1; while(i<=10){ if(i%3==0){ System.out.println(i); break;//遇到break語句,循環(huán)結(jié)束 } i++; } }
3.3 continue語句
continue 的功能是跳過這次循環(huán) , 立即進(jìn)入下次循環(huán) .
例如:找出1~10之間所有的偶數(shù)
public static void main(String[] args) { int i=1; while(i<=10){ if(i%2!=0){ i++; continue;//遇到continue語句,會(huì)直接進(jìn)入下一次循環(huán),不會(huì)執(zhí)行后面的語句 } System.out.println(i); i++; } }
3.4 for循環(huán)
基本語法格式:
for(表達(dá)式1;布爾表達(dá)式2;表達(dá)式3){
//循執(zhí)行的語句塊
}
for循環(huán)執(zhí)行的順序是:
首次循環(huán):首先執(zhí)行表達(dá)式1,再執(zhí)行布爾表達(dá)式2,然后執(zhí)行循環(huán)體;最后執(zhí)行表達(dá)式3。
其余循環(huán): 首先執(zhí)行布爾表達(dá)式2,然后執(zhí)行循環(huán)體,最后執(zhí)行表達(dá)式3。
結(jié)束循環(huán): 布爾表達(dá)式的值為false.
示例代碼:
輸出1~10之間的所有數(shù)
public static void main(String[] args) { for (int i =1; i <=10 ; i++) { System.out.println(i); } }
注意事項(xiàng):
- 1:break和continue對(duì)for循環(huán)同樣適用。
- 2:和 if 類似 , for 下面的語句可以不寫 { } , 但是不寫的時(shí)候只能支持一條語句 . 建議還是加上 { }
- 3: 和 if 類似 , for 后面的 { 建議和 while 寫在同一行 .
- 4:和 if 類似 , for 后面不要多寫 分號(hào) , 否則可能導(dǎo)致循環(huán)不能正確執(zhí)行
3.5 do while 循環(huán)
基本語法格式:
do{
//循環(huán)執(zhí)行的語句
}while(布爾表達(dá)式);
do whiie 循環(huán)的執(zhí)行順序
首先執(zhí)行循環(huán)語句,然后再判斷布爾表達(dá)式是后為true.
因此,無論布爾表達(dá)式的值是否是true,第一次循環(huán)都會(huì)執(zhí)行。
示例代碼1:
打印1~10
public static void main(String[] args) { int i=1; do{ System.out.println(i); i++; }while (i<=10); }
示例代碼2:
演示布爾表達(dá)式不成立,循環(huán)語句執(zhí)行一次
public static void main(String[] args) { int i=0; do{ System.out.println(i); }while (i>0);//i=0 i>0表達(dá)式的值為false }
4 邏輯控制綜合案例
4.1 輸出1000~1200之間所有的閏年
public static void main2(String[] args) { for (int i = 1000; i <=1200 ; i++) { if(i%100!=0&&i%4==0||i*400==0) { System.out.println(i); } } }
4.2 計(jì)算1~100之間9出現(xiàn)的次數(shù)
public static void main(String[] args) { int i=1; int num=0; while(i<=100){ int j=i; /* 求出一個(gè)數(shù)各個(gè)位上的數(shù)字 循環(huán)執(zhí)行以下操作 第一步:用這個(gè)數(shù)取余10的到個(gè)數(shù) 第二步:這個(gè)數(shù)除等10 第三步:判斷這個(gè)數(shù)是不是0 */ while (j>0){ if(j%10==9) { num++; } j=j/10; } i++; } System.out.println(num);//9 19 29 39 49 59 69 79 89 中各出現(xiàn)一次9 //90 91 92 93 94 95 96 97 98中各出現(xiàn)一次9 //99中出現(xiàn)兩次9 總共20個(gè)9 }
到此這篇關(guān)于Java 邏輯控制全面詳解的文章就介紹到這了,更多相關(guān)Java 邏輯控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入分析JAVA 多線程--interrupt()和線程終止方式
這篇文章主要介紹了JAVA 多線程--interrupt()和線程終止方式的的相關(guān)資料,文中代碼非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06AJAX省市區(qū)三級(jí)聯(lián)動(dòng)下拉菜單(java版)
這篇文章主要介紹了AJAX省市區(qū)三級(jí)聯(lián)動(dòng)下拉菜單(java版)的相關(guān)資料,需要的朋友可以參考下2016-01-01swagger2隱藏在API文檔顯示某些參數(shù)的操作
這篇文章主要介紹了swagger2隱藏在API文檔顯示某些參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06SpringCloud?OpenFeign?服務(wù)調(diào)用傳遞?token的場(chǎng)景分析
這篇文章主要介紹了SpringCloud?OpenFeign?服務(wù)調(diào)用傳遞?token的場(chǎng)景分析,本篇文章簡(jiǎn)單介紹?OpenFeign?調(diào)用傳遞?header?,以及多線程環(huán)境下可能會(huì)出現(xiàn)的問題,其中涉及到?ThreadLocal?的相關(guān)知識(shí),需要的朋友可以參考下2022-07-07java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式
這篇文章主要介紹了java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12