Java 邏輯控制全面詳解
1 順序結構
順序結構比較簡單,就是代碼一行一行的執(zhí)行,本節(jié)之前寫的所有代碼都是順序結構。
例如:
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(布爾表達式){
//條件滿足時的要執(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(布爾表達式){
//條件成立是執(zhí)行的語句
}
else{
//條件不成立時執(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(布爾表達式1){
//表達式1為true,執(zhí)行的代碼
}
else if(布爾表達式2){
//表達式2為true,執(zhí)行的代碼
}
else{
//表達式1和表達式2都為falses,執(zhí)行的代碼
}
示例代碼3:
public static void main(String[] args) {
int a=10;
int b=10;
if(a>b){
System.out.println(a);//表達式1不成立,該語句不執(zhí)行
}
else if(b>a){
System.out.println(b);//表達式2不成立。該語句不執(zhí)行
}
else{
System.out.print("a=b=");//表達式1和表達式2都不成立,該語句執(zhí)行
System.out.println(a);//注意:表達式成立時執(zhí)行的語句可以是多條
}
}

注意事項1:
if語句可以嵌套使用,當if(布爾表達式)中的表達式成立時,就會執(zhí)行對應的語句塊 ,在這個對應的語句塊中也可以使用if語句
例如:找出三個數中最大的數
public static void main(String[] args) {
int a=50;
int b=70;
int c=20;
System.out.print("最大的數是");
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í)行改語句
}
}
}

注意事項2:
if語句中的布爾表達式成立時,會執(zhí)行if所對應的語句塊。如果不加“{}”時,就會執(zhí)行緊隨其后的一條語句
例如:
public static void main(String[] args) {
int a=10;
int b=20;
if(a>b)
System.out.println(a);//此時if條件不成立,所以不會執(zhí)行這條語句
System.out.println(b);//雖然if條件不成立,但是這條語句已經超出了if
//語句塊,所以這條語句還會執(zhí)行
}

2.2 switch語句
基本語法格式
switch ( 整數 | 枚舉 | 字符 | 字符串 ){
case 內容 1 : {
內容滿足時執(zhí)行語句 ;
[ break ;]
}
case 內容 2 : {
內容滿足時執(zhí)行語句 ;
[ break ;]
}
...
default :{
內容都不滿足時執(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("輸入錯誤");
break;
}
}

根據 switch 中值的不同 , 會執(zhí)行對應的 case 語句 . 遇到 break 就會結束該 case 語句 . 如果 switch 中的值沒有匹配的 case, 就會執(zhí)行 default 中的語句 . 我們建議一個 switch 語句最好都要帶上 default.
3 循環(huán)結構
3.1while循環(huán)
基本語法格式:
while(布爾表達式){
//要執(zhí)行的語句塊;
}
當布爾表達式為true,循環(huán)執(zhí)行要執(zhí)行的語句塊,否則結束循環(huán)。
示例代碼:輸出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 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行。
3.2 break語句
break 的功能是讓循環(huán)提前結束 .
例如:找出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語句,循環(huán)結束
}
i++;
}
}

3.3 continue語句
continue 的功能是跳過這次循環(huán) , 立即進入下次循環(huán) .
例如:找出1~10之間所有的偶數
public static void main(String[] args) {
int i=1;
while(i<=10){
if(i%2!=0){
i++;
continue;//遇到continue語句,會直接進入下一次循環(huán),不會執(zhí)行后面的語句
}
System.out.println(i);
i++;
}
}

3.4 for循環(huán)
基本語法格式:
for(表達式1;布爾表達式2;表達式3){
//循執(zhí)行的語句塊
}
for循環(huán)執(zhí)行的順序是:
首次循環(huán):首先執(zhí)行表達式1,再執(zhí)行布爾表達式2,然后執(zhí)行循環(huán)體;最后執(zhí)行表達式3。
其余循環(huán): 首先執(zhí)行布爾表達式2,然后執(zhí)行循環(huán)體,最后執(zhí)行表達式3。
結束循環(huán): 布爾表達式的值為false.
示例代碼:
輸出1~10之間的所有數
public static void main(String[] args) {
for (int i =1; i <=10 ; i++) {
System.out.println(i);
}
}

注意事項:
- 1:break和continue對for循環(huán)同樣適用。
- 2:和 if 類似 , for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句 . 建議還是加上 { }
- 3: 和 if 類似 , for 后面的 { 建議和 while 寫在同一行 .
- 4:和 if 類似 , for 后面不要多寫 分號 , 否則可能導致循環(huán)不能正確執(zhí)行
3.5 do while 循環(huán)
基本語法格式:
do{
//循環(huán)執(zhí)行的語句
}while(布爾表達式);
do whiie 循環(huán)的執(zhí)行順序
首先執(zhí)行循環(huán)語句,然后再判斷布爾表達式是后為true.
因此,無論布爾表達式的值是否是true,第一次循環(huán)都會執(zhí)行。
示例代碼1:
打印1~10
public static void main(String[] args) {
int i=1;
do{
System.out.println(i);
i++;
}while (i<=10);
}

示例代碼2:
演示布爾表達式不成立,循環(huán)語句執(zhí)行一次
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;
/*
求出一個數各個位上的數字
循環(huán)執(zhí)行以下操作
第一步:用這個數取余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 邏輯控制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
深入分析JAVA 多線程--interrupt()和線程終止方式
這篇文章主要介紹了JAVA 多線程--interrupt()和線程終止方式的的相關資料,文中代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-06-06
AJAX省市區(qū)三級聯(lián)動下拉菜單(java版)
這篇文章主要介紹了AJAX省市區(qū)三級聯(lián)動下拉菜單(java版)的相關資料,需要的朋友可以參考下2016-01-01
SpringCloud?OpenFeign?服務調用傳遞?token的場景分析
這篇文章主要介紹了SpringCloud?OpenFeign?服務調用傳遞?token的場景分析,本篇文章簡單介紹?OpenFeign?調用傳遞?header?,以及多線程環(huán)境下可能會出現的問題,其中涉及到?ThreadLocal?的相關知識,需要的朋友可以參考下2022-07-07
java新增關聯(lián)的三張表,每張表要求都插入集合,代碼實現方式
這篇文章主要介紹了java新增關聯(lián)的三張表,每張表要求都插入集合,代碼實現方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

