010_Java流程控制語句

一、Java流程控制語句(三種)

1、順序結構

自上而下依次順序執行

2、選擇結構

①🔺if 語句

選擇/分支/條件語句
只要有一個分支執行,整個if語句就結束
當分支中只有一條java語句時,大括號{}可以省略不寫,但爲了代碼的可讀性建議不要省略

"栗子1"

package javaBasis;

import java.util.Scanner;

/*題目:輸入三個正整數,判斷能否構成三角形的三邊,如果不能,輸出“NO”。
               如果能構成三角形,判斷構成什麼三角形?按等邊、直角、一般三角形分類,
               依次輸出對應的三角形類型“Equilateral”、“Right”、“General”。
               數據範圍限制:1<=a,b,c<=1000
輸入
輸入一行三個用空格隔開的正整數a,b,c,表示三角形的三條邊長。

輸出
輸出對應三角形的類型,如果不能構成三角形,輸出“NO”,
如果是等邊三角形輸出“Equilateral”,
如果是直角三角形輸出“Right”,
其他三角形則輸出“General”。

樣例輸入
3 4 5

樣例輸出
Right
 */
// 考查:if ~else if else語句
public class IfTest01 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int a = input.nextInt();
		int b = input.nextInt();
		int c = input.nextInt();
		double x, y, z;
		x = Math.pow(a, 2);
		y = Math.pow(b, 2);
		z = Math.pow(c, 2);
		
		String type = "Triangle";
		// 能構成三角形的三邊條件:任意兩邊之和大於第三邊(必須都成立,&&全真才真,一假即假) 
		if (a + b > c && a + c > b && b + c > a) {
			if (a == b && a == c && b == c) {  
				type =  "Equilateral";   // 等邊三角形(三邊相等) 
			}else if (x + y == z || x + z == y || y + z == x) {  
				type = "Right";          // 直角三角形(勾股定理)
			}else {						 
				type = "General";        // 其他三角形 
			}
		}
		else {
			type = "NO";
		}
		System.out.println(type);
	}
}

"栗子2"

package javaBasis;

import java.util.Scanner;

/* 題目:分配任務
在社會實踐活動中有三項任務分別是:種樹、採茶、送水。依據小組人數及男生、女生人數決定小組的接受任務,
人數小於10人的小組負責送水(輸出water),人數大於等於10人且男生多於女生的小組負責種樹(輸出tree),
人數大於等於10人且男生不多於女生的小組負責採茶(輸出tea)。輸入小組男生人數、女生人數,輸出小組接受的任務。

輸入
一行兩個空格隔開的數,表示小組中男生和女生的人數。

輸出
輸出對應的任務。

樣例輸入
5 3

樣例輸出
water
 */
// 考查:if-else語句、內嵌if-else語句
public class IfTest02 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int boys = input.nextInt();
		int girls = input.nextInt();
		
		int total = boys + girls;
		String task = "undetermined";
		if (total >= 10) {
			if (boys > girls) {
				task = "tree";
			}else {
				task = "tea";
			}
		}else {
			task = "water";
		}
		System.out.println(task);
	}
}

② switch語句

"栗子"

package javaBasis;

import java.util.Scanner;

/* 題目:寫評語 
輸入某學生成績score,根據成績好壞輸出相應評語。
	如果成績在大於等於90,輸出“Excellent”;
	如果成績在大於等於80分且小於90分,輸出“Good”;
	如果成績大於等於60分且小於80分,輸出“Pass”;
	成績小於60分,輸出“Fail”。
數據範圍限制:0<=score<=100

輸入
輸入一個整數score,表示學生的成績

輸出
輸出對應的評語。

樣例輸入
65

樣例輸出
Pass
 */
// 考查:switch語句、case穿透現象
public class SwitchTest {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int score = input.nextInt();
		score /= 10;
		String comment = "unknown";
		switch(score) {
			case 10:
			case 9:
			    comment = "Excellent";
			    break;
			case 8:
			    comment = "Good";
			    break;
			case 7: 
			case 6:
			    comment = "Pass";
			    break;
			default: 
			    comment = "Fail";
			    break;
		}
		System.out.println(comment);
	}
}

3、循環結構

①🔺for語句

"栗子"

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

/* 打印九九乘法表
1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
②🔺while語句

"栗子"

package javaBasis;

import java.util.Scanner;

/* 題目:數字之和
對於任意輸入的整數,計算其各個數位上的數字之和。
數據範圍限制:1<=N<2^31

輸入
輸入一個正整數N。

輸出
輸出N的各個位上的數字之和。

樣例輸入
1234

樣例輸出
10
 */
public class WhileTest {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int sum = 0;
		while(n != 0){
			sum += n % 10;
			n /= 10;
		}
		System.out.println(sum);
	}
}
③ do…while語句

二、轉向語句(三種)

1、break語句【break;】

(1) 作用:跳出當前所在循環體,順序執行循環體外層語句。
(2) 使用:① 用在switch語句中,用來終止switch語句執行。
               ② 用在循環 (for/ while/ do~while)語句中,用來終止循環的執行。

public class BreakTest {
	public static void main(String[] args) {
		for (int i = 0; i <= 10; i++) {
			if (i == 5) {
				break;	// break跳出的是循環,即for,而不是if.
			}
			System.out.println("i == " + i);
		}
		System.out.println("我是循環體外的語句A");
		System.out.println("我是循環體外的語句B");
		System.out.println("我是循環體外的語句C");
	}
}

/* 執行結果:
i == 0
i == 1
i == 2
i == 3
i == 4
我是循環體外的語句A
我是循環體外的語句B
我是循環體外的語句C
*/

2、continue語句【continue;】

(1) 作用:跳出當前本次循環,繼續下一次循環條件的判斷。

注:①執行【continue;】語句,for循環跳過循環體中餘下的語句,執行更新表達式,並對條件表達式(循環控制條件)進行判斷。while和do-while循環跳過循環體中餘下的語句,直接跳到條件表達式(循環控制條件)進行判斷。
       ② 【continue;】語句是終止"本次"循環,接着開始下一次循環
              而【break;】語句則是完全終止整個循環。

public class ContinueTest {
	public static void main(String[] args) {
		for (int i = 0; i <= 10; i++) {
			if (i == 5) {	
				continue;
			}
			System.out.println("i == " + i);
		}
		System.out.println("循環體外語句");
	}
}

/* 執行結果:
i == 0
i == 1
i == 2
i == 3
i == 4
i == 6
i == 7
i == 8
i == 9
i == 10
循環體外語句
*/

3、return語句【return; 或 return 返回值;】

(1)、作用:結束方法。
(2)、兩種表示形式:
return;
return不跟返回值,即方法聲明返回類型爲void。當【return;】執行時,return所在方法結束。作用是中斷方法(函數)執行,直接返回函數調用處
return 返回值;
當【return 返回值;】語句執行,返回值會傳遞給調用該方法的對象,並聲明一個和返回值類型相同的引用來接收返回值


🍅🍅🍅 以往文章 👇

001_Java語言發展歷程
002_Java語言的八大特性
003_淺析JDK、JRE、JVM的區別和聯繫
004_JDK的下載安裝與環境變量的配置
005_DOS常用命令
006_Java關鍵字、標識符、註釋
007_Java八大基本數據類型
008_Java類型轉換
009_Java運算符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章