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运算符

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