3.选择结构

关键字 if

我们都知道代码是按照顺序执行的,那么一旦出现分支该如何处理呢?

比如说给学生成绩做评价:
成绩 >= 80分的,评价为良好
成绩 >= 60分的,评价为中等
成绩 < 60分,评价为差

运行的时候,代码出现了分支选择,需要根据特定的条件做出处理。
这时就到了 if 关键字出场啦。

image

来看一个简单的例子:
如果张三的Java课成绩 >= 90分,就奖励一台PS5。

System.out.println("请输入张三的Java课成绩:");

Scanner input = new Scanner(System.in);
int score = input.nextInt();

if (score >= 90) {
    System.out.println("奖励一台PS5");
}

image

如果 if 中的条件判断很复杂,该如何使用呢?
比如:
如果张三的Java课成绩 >= 90分,并且音乐课成绩 > 80分时,或者Java课成绩 = 100分,音乐课成绩 > 70分时,奖励一台PS5。

判断的条件变得复杂了,不同的条件之间,使用逻辑运算符来连接。
让我们回忆一下,什么是逻辑运算符?

&& || !
与或非

来,写一下这段代码:

Scanner input = new Scanner(System.in);

System.out.println("请输入张三的Java课成绩:");
int scoreJava = input.nextInt();

System.out.println("请输入张三的音乐课成绩:");
int scoreMusic = input.nextInt();

if ((scoreJava >= 90 && scoreMusic > 80) || (scoreJava == 100 && scoreMusic > 70)) {
	System.out.println("奖励一台PS5");
}
  1. 复杂条件下,() 小括号具有最高优先级;
  2. 当条件过长时,可以通过变量提取的方式来简化;
  3. 优先级:!> 算术运算符 > 关系运算符 > && > ||

if else

我们再来看一个例子:
如果张三Java课成绩 > 90分,奖励一台PS5,否则,就要俯卧撑100个。

Scanner input = new Scanner(System.in);

System.out.println("请输入张三的Java课成绩:");
int score = input.nextInt();

if (score > 90) {
	System.out.println("奖励一台PS5");
}
else {
	System.out.println("俯卧撑100个");
}

image

if else-if else 多重选择结构

先来看看长什么样:

if (score >= 90) {
	System.out.println("良好");
}
else if (score >= 70) {
	System.out.println("中等");
}
else if (score >= 60) {
	System.out.println("及格");
}
else {
	System.out.println("差");
}

image
(当然在分数里,是有上限的,可以是100分,也可以是150分,下限应该是0分)

很好理解对吧。

那么问题来了:
多重选择结构中的条件顺序可以任意排列吗?

答案是 不能

嵌套if选择结构

举例:如果张三Java课成绩 >= 90分,根据其年龄是否 >= 18岁,是则奖励一台PS5,否则奖励一根棒棒糖。
要求:年龄随机,范围取值:[10 - 24]

Math.random():产生一个[0,1)之间的随机数。

public static int random(int min, int max) {
	return (int) (Math.random() * (max - min + 1) + min);
}

switch

举例:张三参加编程大赛,如果获得第一名:奖励一台PS5,第二名:奖励笔记本一台,第三名:奖励移动硬盘一个,否则,没有奖励。

可以使用多重if选择结构,但当条件一多,代码就变得比较啰嗦。
这个时候有没有那种一眼看上去就很清晰的代码结构呢?
关键字:switch

switch (表达式) {
	case 常量1:
		// 代码
		break;
	case 常量2:
		// 代码
		break;
	case 常量3:
		// 代码
		break;
	default:
		// 代码
		break;
}

switch判断条件为等值判断

posted @ 2022-04-23 08:28  AtionLove  阅读(76)  评论(0)    收藏  举报