App下載

Java基礎(chǔ)學(xué)習(xí)之選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的詳細(xì)總結(jié)

猿友 2021-08-03 11:12:33 瀏覽數(shù) (3153)
反饋

一、選擇結(jié)構(gòu)

根據(jù)已知條件進(jìn)行邏輯判斷,滿足條件后執(zhí)行響應(yīng)的操作

1.1基本if選擇結(jié)構(gòu)

1.1.1語法

if(布爾表達(dá)式){
// 代碼塊
}

1.1.2執(zhí)行流程

對布爾表達(dá)式進(jìn)行判斷:
如果結(jié)果為true,執(zhí)行代碼塊,執(zhí)行完成后執(zhí)行后續(xù)代碼;
如果結(jié)果為false,不會執(zhí)行代碼塊,執(zhí)行后續(xù)代碼

1.1.3代碼展示

public class Demo1 {
      public static void main(String[] args) {
  
    	  if(1==1) {
    		  System.out.println("判斷正確");
    	  }
          System.out.println("程序運(yùn)行結(jié)束");
	}
}

1.1.4運(yùn)行結(jié)果

判斷正確
程序運(yùn)行結(jié)束

1.2平衡if選擇結(jié)構(gòu)

1.2.1語法

if(布爾表達(dá)式){
// 代碼塊1
}else{
// 代碼塊2
}

1.2.2執(zhí)行流程

對布爾表達(dá)式進(jìn)行判斷:
如果結(jié)果為true,執(zhí)行代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果結(jié)果為false,執(zhí)行代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

1.2.3代碼展示

public class Demo1 {
      public static void main(String[] args) {
    	  int score=79;
    	 if(score>60) {
    		 System.out.println("恭喜,成績及格");
    	 }else {
    		 System.out.println("很遺憾,成績不及格");
    	 }
    	 
    	 System.out.println("退出程序.....");
	}
}

1.2.4運(yùn)行結(jié)果

恭喜,成績及格
退出程序.....

1.3重復(fù)if選擇結(jié)構(gòu)

1.3.1語法

if(布爾表達(dá)式1){
// 代碼塊1
}else if(布爾表達(dá)式2){
// 代碼塊2
}…
else if(布爾表達(dá)式n){
// 代碼塊n
}else{
// 代碼塊n+1
}

1.3.2執(zhí)行流程

對布爾表達(dá)式1進(jìn)行判斷:

如果布爾表達(dá)式1結(jié)果為true,執(zhí)行代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

如果布爾表達(dá)式1結(jié)果為false,對布爾表達(dá)式2進(jìn)行判斷:

如果布爾表達(dá)式2結(jié)果為true,執(zhí)行代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

如果結(jié)果為false…

若所有表達(dá)式都為false,執(zhí)行執(zhí)行代碼塊n+1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

所有if語句是相互排斥的,只要其中一個(gè)布爾表達(dá)式為true,其余不在執(zhí)行,適用于區(qū)間判斷

1.3.3代碼展示

public class Demo1 {
      public static void main(String[] args) {
    	  //score<60,不及格
    	  //60<=score<80 中等
    	  //80<=score<90 良好
    	  // 90<=score<=100 優(yōu)秀
    	  int score=79;
    	 if(score>=90) {
    		 System.out.println("恭喜,成績優(yōu)秀");
    	 }else if(score>=80){
    		 System.out.println("恭喜,成績良好");
    	 }else if(score>=60) {
    		 System.out.println("恭喜,成績中等");
    	 }else {
    		 System.out.println("很遺憾,成績不及格");
    	 }
    	 
    	 System.out.println("退出程序.....");
	}
}

1.3.4運(yùn)行結(jié)果

恭喜,成績中等
退出程序....

1.4嵌套重復(fù)結(jié)構(gòu)

1.4.1語法

if(外部布爾表達(dá)式){
if(內(nèi)部布爾表達(dá)式){
//內(nèi)層代碼塊1
}else{
//內(nèi)層代碼塊2
}
}else{
//外部代碼塊1
}

1.4.2執(zhí)行流程

先對外層布爾表達(dá)式進(jìn)行判斷:

如果外層布爾表達(dá)式結(jié)果為true,再判斷內(nèi)層布爾表達(dá)式:

如果內(nèi)層布爾表達(dá)式結(jié)果為true,執(zhí)行內(nèi)層代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果內(nèi)層布爾表達(dá)式結(jié)果結(jié)果為false,執(zhí)行內(nèi)層代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

如果外層布爾表達(dá)式結(jié)果為false,執(zhí)行外層代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼

一個(gè)選擇結(jié)構(gòu)中,可以嵌套另一個(gè)選擇結(jié)構(gòu),只要語法都符合規(guī)范

1.4.3代碼展示

public class Demo1 {
	public static void main(String[] args) {

		int score = 79;
		if (score > 60) {
			if (score == 100) {
				System.out.println("恭喜,不僅成績及格,還考了滿分哦!");
			} else {
				System.out.println("成績及格,還需要再接再厲哦!");
			}
		} else {
			System.out.println("很遺憾,成績不及格");
		}
		System.out.println("退出程序.....");
	}
}

1.4.4運(yùn)行結(jié)果

成績及格,還需要再接再厲哦!
退出程序.....

二、分支結(jié)構(gòu)

2.1分支結(jié)構(gòu)

2.1.1語法

switch(變量|表達(dá)式){
case 值1:
邏輯代碼塊1;
case 值2:
邏輯代碼塊2;
case 值3:
邏輯代碼塊3;
…
case 值n:
邏輯代碼塊n;
default:
未滿足的邏輯代碼塊;
}

2.1.2執(zhí)行流程

如果變量中的值等于值1,則執(zhí)行邏輯代碼塊1,執(zhí)行后續(xù)代碼

如果變量中的值等于值2,則執(zhí)行邏輯代碼塊2,執(zhí)行后續(xù)代碼

如果沒有匹配的case值,則執(zhí)行default中的邏輯代碼。default也可以不存在

變量類型可以是byte、short、int 、char、string,適用于等值判斷
注意:當(dāng)匹配的case執(zhí)行后,不會自動退出整個(gè)分支結(jié)構(gòu),而是繼續(xù)向下執(zhí)行。但break關(guān)鍵字可在匹配的case執(zhí)行后,跳出整個(gè)分支結(jié)構(gòu)。

2.1.3代碼展示

public class Demo1 {
	public static void main(String[] args) {

		int score = 80;
		switch (score) {
		case 90:
              System.out.println("成績優(yōu)秀");			
			break;
		case 80:
			System.out.println("成績良好");	
		case 60:
			System.out.println("成績及格");
			break;
		case 59:
			System.out.println("成績不及格");	
		default:
			break;
		}
	}
}

2.1.4運(yùn)行結(jié)果

成績良好
成績及格

三、循環(huán)語句

通過某個(gè)條件,重復(fù)執(zhí)行一段邏輯代碼

3.1 while循環(huán)

3.1.1語法

初始化語句;
while(布爾表達(dá)式循環(huán)條件){
循環(huán)操作;
迭代部分;
}

3.1.2執(zhí)行流程

先執(zhí)行初始化語句,再對布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼

循環(huán)操作可能執(zhí)行次數(shù)0~n次,適合循環(huán)次數(shù)確定

3.1.3代碼展示

public class Demo1 {
	public static void main(String[] args) {

	  /*打印數(shù)字0-9*/
		int i=0;
		while(i<10) {
			System.out.println(i);
			i++;
		}
		System.out.println("打印結(jié)束");
	}
}

3.1.4運(yùn)行結(jié)果

0
1
2
3
4
5
6
7
8
9
打印結(jié)束

3.2do…while循環(huán)

3.2.1語法

初始化部分;
do{
循環(huán)操作;
迭代部分;
}while(布爾表達(dá)式循環(huán)條件)

3.2.2執(zhí)行流程

先執(zhí)行初始化語句,執(zhí)行循環(huán)操作和迭代條件,判斷布爾表達(dá)式,如果結(jié)果為true,再次執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼

循環(huán)操作可能執(zhí)行次數(shù)1~n次,適合循環(huán)次數(shù)不確定

3.2.3代碼展示

public class Demo1 {
	public static void main(String[] args) {

	  /*打印數(shù)字0-9*/
		int i=0;
		do{
			System.out.println(i);
			i++;
		}while(i<10);
		System.out.println("打印結(jié)束");
	}
}

3.2.4運(yùn)行結(jié)果

0
1
2
3
4
5
6
7
8
9
打印結(jié)束

3.3 for循環(huán)

3.3.1語法

for(初始化部分;布爾表達(dá)式循環(huán)條件;迭代部分){
循環(huán)操作;
}

3.3.2執(zhí)行流程

先執(zhí)行初始化語句,再對布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼

循環(huán)操作可能執(zhí)行次數(shù)0~n次,適合循環(huán)次數(shù)確定

3.3.3代碼展示

public class Demo1 {
	public static void main(String[] args) {

	  /*打印數(shù)字0-9*/
		for(int i=0;i<10;i++) {
			System.out.println(i);
		}
		System.out.println("打印結(jié)束");
	}
}

3.3.4運(yùn)行結(jié)果

0
1
2
3
4
5
6
7
8
9
打印結(jié)束

3.4 嵌套循環(huán)語句

在一個(gè)完整循環(huán)語句中可以嵌套另一個(gè)完整循環(huán)條件

3.4.1代碼展示

public class Demo1 {
//   打印九九乘法表
	public static void main(String[] args) {
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+(i*j)+"  ");
			}
			System.out.println();
		}
	}
	

}

3.4.2運(yùn)行結(jié)果

1*1=1 
1*2=2  2*2=4 
1*3=3  2*3=6  3*3=9 
1*4=4  2*4=8  3*4=12  4*4=16 
1*5=5  2*5=10  3*5=15  4*5=20  5*5=25 
1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36 
1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49 
1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64 
1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 

3.5 流程控制關(guān)鍵字 break

用于跳出switch、循環(huán)語句整個(gè)結(jié)構(gòu)

3.5.1代碼展示

public class Demo1 {

	public static void main(String[] args) {
		int i=0;
		while(i<10) {
			System.out.println(i);
			i++;
			if(i==5) {
				break;
			}
				
		}
			
	}

}

3.5.2運(yùn)行結(jié)果

0
1
2
3
4

continue

跳出本次循環(huán),執(zhí)行下一次循環(huán)

3.5.3代碼展示

public class Demo1 {

	public static void main(String[] args) {
		int i=0;
		while(i<10) {
			System.out.println(i);
			i++;
			if(i==5) {
				continue;
			}
				
		}
			
	}

}

3.5.4運(yùn)行結(jié)果

0
1
2
3
4
5
6
7
8
9

3.6 循環(huán)組成部分

1.初始部分:用以判斷的變量
2.循環(huán)條件:決定是否繼續(xù)使用循環(huán)的依據(jù)
3.循環(huán)操作:滿足循環(huán)條件后單詞執(zhí)行的邏輯代碼
4.迭代部分:控制循環(huán)條件改變的增量

到此本篇總結(jié) Java 基礎(chǔ)知識部分的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的文章就介紹到這了,想要了解更多相關(guān) Java 其他內(nèi)容請搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,也希望大家以后多多支持!


0 人點(diǎn)贊