分支结构包含了两种语句:if语句、switch语句
一、if语句
为什么要有if语句呢?
需求:键盘录入女婿酒量,如果大于 2 斤,老丈人给出回应,反之不回应
if语句在程序中就是用来进行判断的。
二、if语句的第一种格式
if (关系表达式) {
语句体;
}
执行流程
代码示例
需求:键盘录入女婿酒量,如果大于 2 斤,老丈人给出回应,反之不回应
package com.itheima.ifdemo;
import java.util.Scanner;
public class IfDemo1 {
public static void main(String[] args) {
//if格式
//if(关系表达式){
//语句体;
// }
//分析:
//1.键盘录入女婿的酒量
Scanner sc = new Scanner(System.in);
System.out.println("请输入女婿的酒量");
int wine = sc.nextInt();
//2.对酒量进行判断
if(wine > 2){
System.out.println("小伙子,不错哟!!");
}
}
}
三、if 的注意点
-
大括号的开头可以另起一行书写,但是建议写在第一行的末尾,因为Java的发明者就是这样写的。
-
在语句体中,如果只有一句代码,大括号可以省略不写。个人建议,大括号还是不要省略。
下述代码这样写就会报错,因为
int a = 100;
至少包含了两句代码。1、定义变量a;2、给变量a赋值给100if (number >= 10) int a = 100;
-
如果对一个布尔类型的变量进行判断,不要用
==
号,直接把变量写在小括号即可。防止==
跟=
搞混boolean flag = true; // if (flag == true){ if (flag){ System.out.println("flag的值为true"); }
四、练习:考试奖励
小红对小明说:如果你这次考试全班第一,我就做你女朋友。
![image-20240402103703003](https://img-blog.csdnimg.cn/img_convert/f253806f501847ad7fd91e13dcbe3d1c.png)
班上其他同学非常感动,所以其他同学决定一起交白卷。
![image-20240402103825997](https://img-blog.csdnimg.cn/img_convert/2030eb87b22a8b697c5140f8bf029dcc.png)
最后小红非常开心
![image-20240402103842530](https://img-blog.csdnimg.cn/img_convert/002ba87cbe414a278b490ff5f4ce9a3c.png)
需求:把小红的心理活动做一个代码实现。
代码示例
package com.itheima.test;
public class Test1 {
public static void main(String[] args) {
//小红:如果你这次考试全班第一,我就做你女朋友。
//分析:
//1.定义变量记录小明的名次
int ranking = 2;
//2.对小明的名次进行判断。
if(ranking == 1){
System.out.println("小红成为了小明的女朋友");
}
}
}
五、练习:自动驾驶
当无人驾驶汽车行驶到十字路口遇到了红绿灯,如果红灯是亮的,它就会停止,如果绿灯是亮的,它就会继续前进。所以此时我们也可以使用 if语句 来进行模拟。
package com.itheima.test;
public class Test2 {
public static void main(String[] args) {
//汽车无人驾驶会涉及到大量的判断
//当汽车行驶的时候遇到了红绿灯,就会进行判断
//如果红灯亮,就停止
//如果黄灯亮,就减速
//如果绿灯亮,就行驶
//1.定义三个变量表示灯的状态
//true表示灯亮 false表示灯灭
boolean isLightGreen = false;
boolean isLightYellow = false;
boolean isLightRed = true;
//2.判断
//红灯亮,就停止
//黄灯亮,就减速
//绿灯亮,就行驶
if(isLightGreen){
System.out.println("GoGoGo!!!");
}
if(isLightYellow){
System.out.println("slow!!!");
}
if(isLightRed){
System.out.println("stop!!!");
}
}
}