Java學習筆記 第四天

The_______shy發表於2020-11-12

第一章 順序結構

public static void main(String[] args){
	//	順序執行
	System.out.println(1);
	System.out.println(2);
	System.out.println(3);
}

在這裡插入圖片描述

第二章 判斷語句

2.1 判斷語句1—if語句

  • if語句第一種格式: if
if(關係表示式){
	語句體;
}

在這裡插入圖片描述

public class Demo02if{
	public static void main(String[] args){
		System.out.println("發現網咖!");
		int age = 16;
		if(age >= 18){
			System.out.println("進入網咖開始擼!");
			System.out.println("菜逼隊友");
			System.out.println("感覺不爽,結賬走人");
		}
		System.out.println("回家吃飯");
	}
}

2.2 判斷語句2—if…else語句

  • if語句第二種格式: if…else
if(關係表示式){
	語句體1;
}else{
	語句體2;
}
  • 執行流程
    1. 首先判斷關係表示式是不是true
    2. 如果是true則執行語句體1
    3. 如果是false則執行語句體2
      在這裡插入圖片描述
public class Demo03IfElse{
	public static void main(String[] args){
		int a = 1;
		if(a%2 == 0){
			System.out.println("這是偶數");
		}else{
			System.out.println("這是奇數");
		}
	}
}

2.3 判斷語句3—if…else if…else

-if語句第三種格式: if…else if…else

if (判斷條件1){
	語句體1;
}else if (判斷條件2) {
	語句體2;
}
...
}else if (判斷條件n) {
	語句體n;
}else{
	語句體n+1;
}
  • 執行流程:
    1.首先判斷關係表示式1,看其結果為true還是false
    2.如果結果是true,則執行語句體1,流程結束
    3.如果是false,繼續判斷表示式2,看起結果為truehaishifalse
    4.如果結果是true,則執行語句體2,流程結束
    5.如果是false,按照上面步驟繼續執行下去…
    6.如果判斷到第n個判斷條件依然是false,則執行語句體n+1,流程結束
    在這裡插入圖片描述
//	如果x >= 3;那麼y = 2x + 1
//	如果-1 < x < 3,那麼y = 2x
//	如果x <= -1,那麼y = 2x - 1
public class Demo04IfElseIf{
	public static void main(String[] args){
		int x = 10;
		int y;
		if (x >= 3){
			y = 2 * x + 1;
		}else if (x > -1 && x < 3){
			y = 2 * x;
		}else {
			y = 2 * x - 1;
		}
		System.out.println("結果是:" + y);
	}
}

2.3.1 練習—實現成績劃分

//	指定考試成績,判斷成績的等級
//	90-100	優秀
//	80-89	好
//	70-79	良
//	60-69	及格
//	60以下	不及格

public class Demo05Practice{
	public static void main(String[] agrs){
		int score = 84;
		if(score >= 90 && score <= 100){
			System.out.println("優秀");	
		}else if(score >= 80 && score <= 89){
			System.out.println("好");
		}else if(score >= 70 && score <= 79){
			System.out.println("良");
		}else if(score >= 60 && score <= 69){
			System.out.println("及格");
		}else if(score >= 0 && score <= 59){
			System.out.println("不及格");
		}else{
			System.out.println("分數無效");
		}
	}
}

2.3.2 練習—用if語句替換三元運算子

//	題目:使用三元運算子和標準的if...else語句分別實現:取兩個數字中的最大值
public class Demo05Practice2{
	public static void main(String[] args){
		func1();
		func2();
	}
	public static void func1(){
		double a = 4.5;
		double b = 5.7;
		double max = a < b?b:a;
		System.out.println("最大值是:" + max);
	}
	public static void func2(){
		double a = 4.5;
		double b = 5.7;
		if (a < b){
			System.out.println("最大值是" + b);
		}else{
			System.out.println("最大值是" + a);
		}
	}
}

第三章 選擇語句

3.1 選擇語句—switch語句

  • switch語句格式
swtich(表示式){
	case 常量值1:
		語句體1;
		break;
	case 常量值2:
		語句體2;
		break;
	...
	default:
		語句體n+1;
		break;
}
  • 執行流程:
    1.首先計算出表示式的值
    2.其次,和case一次比較,一旦有對應的值,就會執行相應的語句,在執行過程中,遇到break就會結束
    3.最後,如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後程式結束掉

例子:

// 用switch語句判斷星期幾

public class Demo07Switch{
	public static void main(String[] args){
		int num = 8;
		if (num >= 1 && num <= 7){
			switch(num){
			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;
			default:
				System.out.println("週末");
				break;	//	最後一個break語句可以省略,但是強烈建議不要省略
			}
		}else{
			System.out.println("資料無效");
		}
	}
}

switch注意事項:
1.多個case後的數值不可以重複,否則,編譯器javac在編譯時候會報錯
2.switch後面小括號當中的內容只能是下列資料型別:
   基本資料型別:byte、short、int、char
   引用資料型別:String字串、enum列舉(很少遇到)
3.switch語句格式很靈活:前後順序可以顛倒(原因在於每個case後的數值不重複,所以不會影響程式的執行結果),而且break語句還可以省略匹配哪一個case就從哪一個位置向下執行,直到遇到了break或者整體結束為止
如:

public class Demo08SwicthNotice{
	public static void main(String[] args){
		int num = 2;
		switch (num){
			case 1:
				System.out.println("你好");
				break;
			case 2:
				System.out.println("我好");
			case 3 :
				System.out.println("大家好");
				break;
			default:
				System.out.println("你好,他也好");
				break;
		}
	}
}
//	上面程式碼發生了穿透現象
//	當在case 2這裡匹配成功時,執行下面的語句輸出“我好”,但是沒有遇到break語句,故繼續向下執行
//	遇到case 3直接穿透,執行case 3下面的語句輸出“大家好”,然後遇到break結束switch語句

// 綜上,輸出:
//						我好
//						大家好

第四章 迴圈語句

4.1 迴圈概述

迴圈語句可以在滿足迴圈條件下,反覆執行某一段程式碼,這段被重複執行的程式碼被稱為迴圈體語句,當反覆執行這個迴圈體時,需要在合適的時候把判斷語句條件改為false,從而結束迴圈,否則迴圈將一直執行下去,形成死迴圈。

迴圈結構的基本組成部分可以分為4個部分:

  • 1.初始迴圈語句:在迴圈開始最初執行,而且只做一次
  • 2.條件判斷:如果成立,則迴圈繼續,如果不成立,則迴圈退出
  • 3.迴圈體:重複要做的事情內容,若干行語句
  • 4.步進語句:每次迴圈之後都要進行的掃尾工作

4.2 迴圈語句1—for

  • for迴圈語句格式:
for(初始表示式1;布林表示式2;步進表示式4):{
	迴圈體3
}

執行流程:

  • 執行順序:1234>234>234…2不滿足為止
  • 初始表示式1負責完成迴圈變數初始化
  • 布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
  • 迴圈體3執行具體的語句
  • 步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況

在這裡插入圖片描述

4.3 迴圈語句—while

  • while迴圈語句格式
while迴圈有一個標準格式和一個擴充套件格式

標準格式:
while(條件判斷){
	迴圈體
}

擴充套件格式:
初始化表示式1
	while (布林表示式2){
		迴圈體3;
		步進表示式4;
}
  • 執行流程:
    執行順序:1234>234>234…2不滿足為止
    初始化表示式1負責完成迴圈變數的初始化
    布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
    迴圈體3是具體的執行語句
    步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況

在這裡插入圖片描述

例子:

/*
while迴圈有一個標準格式和一個擴充套件格式

標準格式:
while(條件判斷){
	迴圈體
}

擴充套件格式:

初始化語句
while (條件判斷){
	迴圈體;
	步進語句
}
*/
public class Demo09While{
	public static void main(String[] args ){
		fun1();
		fun2();
	}
	public static void fun1(){
		for (int i = 1; i <= 10; i++){
			System.out.println("我錯啦!" + i);
		}
	}
	public static void fun2(){
		int i = 1;	//	1.初始化語句
		while (i <= 10){	//	2.條件判斷
			System.out.println("我沒錯!" + i);	//	3.迴圈體
			i++;	//	4.步進語句
		}
	}
}

4.4 迴圈語句—do…while

do…while的迴圈格式

初始化表示式1
	do{
	迴圈體3
	步進表示式4
}while(布林表示式2);
  • 執行流程:
    執行順序134>234>234…2不滿足為止
    初始化表示式1完成迴圈變數的初始化
    布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
    迴圈體3是具體執行的語句
    步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況

例如:

/*
do---while迴圈的標準格式:

do{
	迴圈體
}while (條件判斷);

擴充套件格式;

初始化語句
do{
	迴圈語句;
	步進語句;
}while(條件判斷);

*/
public class Demo09DoWhile{
	public static void main(String[] args){
		fun1();
		fun2();
		fun3();
	}
	public static void fun1(){
		for (int i = 1; i <= 10; i++){
			System.out.println("我錯啦!" + i);
		}
	}
	public static void fun2(){
		int i = 1;
		while(i <= 10){
			System.out.println("我沒錯!!!" + i);
			i++;
		}
	}
	public static void fun3(){
		int i = 1;
		do{
			System.out.println("你無理取鬧!!!!!!" + i);
			i++;
		}while(i <= 1);
	}
}

4.5 三種迴圈計算1-100以內所有偶數和

//	練習:用迴圈求出1-100內的所有偶數的加和
public class Demo09Practice{
	public static void main(String[] args){
		fun1();
		fun2();
		fun3();
	}
	public static void fun1(){
		int sum = 0;
		for (int i = 1;i <= 100; i++){
			if (i % 2 == 0){
				sum += i;
			}
		}
		System.out.println("結果為:" + sum);
	}
	public static void fun2(){
		int sum = 0;
		int i = 1;
		while (i <= 100){
			if (i % 2 == 0){
				sum += i;
			}
			i++;
		}
		System.out.println("結果為:" + sum);
		
	}
	public static void fun3(){
		int sum = 0;
		int i = 1;
		do{
			if (i % 2 == 0){
				sum += i;
			}
			i++;
		}while(i <= 100);
		System.out.println("結果為:" + sum);
	}
}

4.6 三種迴圈之間的區別

三種迴圈的區別:
1. 如果條件判斷從來沒有滿足過,那麼for迴圈和while迴圈將會執行1次,但是do…while迴圈會執行1次(第一次執行不進行條件判斷)。
2. for迴圈的變數在小括號中定義,只有迴圈內部才可以使用。但是while迴圈和do…while迴圈的初始化語句本來就在外面,所以迴圈出來之後還可以使用

public class Demo09Notice{
	public static void main(String[] args){
		fun1();
		fun2();
		fun3();
	}
	public static void fun1(){
		for (int i = 1; i <= 5; i++){
			System.out.println("這是第" + i + "次");	
		}
	//	System.out.println(i)	//	這一行寫法是錯誤的!因為變數i定義在for迴圈內,只有for迴圈自己才可以使用
	}
	public static void fun2(){
		int i = 1;
		while (i <= 0){
			System.out.println("這是第" + i + "次");
			i++;
		}
		System.out.println("在while迴圈外依然可以使用變數i,此時i = " + i);	//	輸出i = 1
	}
	public static void fun3(){
		int i = 1;
		do{
			System.out.println("這是第" + i + "次");
			i++;
		}while(i <= 0);
		System.out.println("在do...while外部依然可以使用變數i,此時i = " + i);	//	輸出i = 2
	}
}

4.7 迴圈控制語句

4.7.1 break語句

break關鍵字的用法有兩種:
1. 可以用在switch語句中,一旦被執行,整個switch選擇語句就會立刻結束。
2. 還可以用在迴圈中,一旦被執行,整個迴圈語句立刻結束,打斷迴圈。

關於迴圈選擇的建議:
 凡是次數確定的場景多使用for迴圈;否則多用while迴圈。

4.7.2 continue語句

continue語句只用在迴圈中,一旦被執行,立刻跳過當前次迴圈剩餘內容

4.8 死迴圈

永遠停不下來的迴圈叫做死迴圈。
如:

for ( int i = 1; i <= 10;){
	System.out.println("中國");
}

死迴圈的標準格式

while(true){
	System.out.println("I Love Java!");
}

4.9 巢狀迴圈

  • 所謂巢狀迴圈,是指一個迴圈的迴圈體是另外一個迴圈。比如for迴圈裡還有一個for迴圈,就是巢狀迴圈。總共的迴圈次數 = 外層迴圈次數 * 內層迴圈次數
  • 迴圈巢狀格式
for(初始化表示式1;迴圈條件2;步進表示式7){
	for(初始化表示式3;迴圈條件4;步進表示式6){
		執行語句5;
	}
}
  • 巢狀迴圈執行流程:
    執行順序:123456>456>723456>456
    外迴圈一次,內迴圈多次
    比如跳繩:一共跳5組,每組跳4個。5組就是外迴圈,4個就是內迴圈
  • 練習:
public static void main(String[] args){
	for(int i = 0; i < 24; i++){
		for(int j = 0; j < 60; j++){
			System.out.println(i + "點" + j "分");
		}
	}
}

相關文章