1 順序結構
順序結構比較簡單,就是代碼一行一行的執行,本節之前寫的所有代碼都是順序結構。
例如:
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 分支結構
2.1 if語句
基本語法形式1:
if(布爾表達式){
//條件滿足時的要執行的語句
}
示例代碼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條件成立執行該語句 } if(a>b){ System.out.println(b);//a是10 b是20 a>b條件不成立不執行該語句 }
基本語法形式2:
if(布爾表達式){
//條件成立是執行的語句
}
else{
//條件不成立時執行的語句
}
示例代碼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條件不成立不執行該語句 } else{ System.out.println(b);//a是10 b是20 a>b條件成立執行該語句 } }
基本語法形式3:
if(布爾表達式1){
//表達式1為true,執行的代碼
}
else if(布爾表達式2){
//表達式2為true,執行的代碼
}
else{
//表達式1和表達式2都為falses,執行的代碼
}
示例代碼3:
public static void main(String[] args) { int a=10; int b=10; if(a>b){ System.out.println(a);//表達式1不成立,該語句不執行 } else if(b>a){ System.out.println(b);//表達式2不成立。該語句不執行 } else{ System.out.print("a=b=");//表達式1和表達式2都不成立,該語句執行 System.out.println(a);//注意:表達式成立時執行的語句可以是多條 } }
注意事項1:
if語句可以嵌套使用,當if(布爾表達式)中的表達式成立時,就會執行對應的語句塊 ,在這個對應的語句塊中也可以使用if語句
例如:找出三個數中最大的數
public static void main(String[] args) { int a=50; int b=70; int c=20; System.out.print("最大的數是"); if(a>b){ //a>b不成立,所以不執行改語句塊 if(c>a){ System.out.println(c); } else{ System.out.println(a); } } else{ //a>b不成立,所以執行該語句塊 if(c>b){ System.out.println(c);//c>b不成立,不執行該語句 } else{ System.out.println(b);//c>b不成立,所以執行改語句 } } }
注意事項2:
if語句中的布爾表達式成立時,會執行if所對應的語句塊。如果不加“{}”時,就會執行緊隨其后的一條語句
例如:
public static void main(String[] args) { int a=10; int b=20; if(a>b) System.out.println(a);//此時if條件不成立,所以不會執行這條語句 System.out.println(b);//雖然if條件不成立,但是這條語句已經超出了if //語句塊,所以這條語句還會執行 }
2.2 switch語句
基本語法格式
switch ( 整數 | 枚舉 | 字符 | 字符串 ){
case 內容 1 : {
內容滿足時執行語句 ;
[ break ;]
}
case 內容 2 : {
內容滿足時執行語句 ;
[ break ;]
}
...
default :{
內容都不滿足時執行語句 ;
[ 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("輸入錯誤"); break; } }
根據 switch 中值的不同 , 會執行對應的 case 語句 . 遇到 break 就會結束該 case 語句 . 如果 switch 中的值沒有匹配的 case, 就會執行 default 中的語句 . 我們建議一個 switch 語句最好都要帶上 default.
3 循環結構
3.1while循環
基本語法格式:
while(布爾表達式){
//要執行的語句塊;
}
當布爾表達式為true,循環執行要執行的語句塊,否則結束循環。
示例代碼:輸出1~10
public static void main(String[] args) { int i=1; while(i<=10){ System.out.println(i); i++; } }
注意事項:
- 1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
- 2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.
- 3. 和 if 類似, while 后面不要多寫 分號, 否則可能導致循環不能正確執行。
3.2 break語句
break 的功能是讓循環提前結束 .
例如:找出1~10中第一個3的倍數
public static void main(String[] args) { int i=1; while(i<=10){ if(i%3==0){ System.out.println(i); break;//遇到break語句,循環結束 } i++; } }
3.3 continue語句
continue 的功能是跳過這次循環 , 立即進入下次循環 .
例如:找出1~10之間所有的偶數
public static void main(String[] args) { int i=1; while(i<=10){ if(i%2!=0){ i++; continue;//遇到continue語句,會直接進入下一次循環,不會執行后面的語句 } System.out.println(i); i++; } }
3.4 for循環
基本語法格式:
for(表達式1;布爾表達式2;表達式3){
//循執行的語句塊
}
for循環執行的順序是:
首次循環:首先執行表達式1,再執行布爾表達式2,然后執行循環體;最后執行表達式3。
其余循環: 首先執行布爾表達式2,然后執行循環體,最后執行表達式3。
結束循環: 布爾表達式的值為false.
示例代碼:
輸出1~10之間的所有數
public static void main(String[] args) { for (int i =1; i <=10 ; i++) { System.out.println(i); } }
注意事項:
- 1:break和continue對for循環同樣適用。
- 2:和 if 類似 , for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句 . 建議還是加上 { }
- 3: 和 if 類似 , for 后面的 { 建議和 while 寫在同一行 .
- 4:和 if 類似 , for 后面不要多寫 分號 , 否則可能導致循環不能正確執行
3.5 do while 循環
基本語法格式:
do{
//循環執行的語句
}while(布爾表達式);
do whiie 循環的執行順序
首先執行循環語句,然后再判斷布爾表達式是后為true.
因此,無論布爾表達式的值是否是true,第一次循環都會執行。
示例代碼1:
打印1~10
public static void main(String[] args) { int i=1; do{ System.out.println(i); i++; }while (i<=10); }
示例代碼2:
演示布爾表達式不成立,循環語句執行一次
public static void main(String[] args) { int i=0; do{ System.out.println(i); }while (i>0);//i=0 i>0表達式的值為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 計算1~100之間9出現的次數
public static void main(String[] args) { int i=1; int num=0; while(i<=100){ int j=i; /* 求出一個數各個位上的數字 循環執行以下操作 第一步:用這個數取余10的到個數 第二步:這個數除等10 第三步:判斷這個數是不是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 中各出現一次9 //90 91 92 93 94 95 96 97 98中各出現一次9 //99中出現兩次9 總共20個9 }
到此這篇關于Java 邏輯控制全面詳解的文章就介紹到這了,更多相關Java 邏輯控制內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_53937197/article/details/120807501