1、基础if选择结构是根据条件判断之后再做处理
语法:
if (条件) {
//代码块
}
即:if (boolean) { code }
注意:(1)条件为boolean值,如果是true则执行代码块,如果是false则不执行;
(2)当if关键字后的一对大括号里只有一个语句时,可以省略大括号,但是为了避免有多个语句时遗忘大括号,以及保持程序整体风格一致,建议不要省略if结构块的大括号。
执行流程如下:
例:需求:如果今天下雨,我们就不上课
分析:今天下雨 -->是条件;条件满足-->执行不上课
boolean rain = false;
if (rain) {
System.out.println("今天不上课"); // 条件不满足,不执行
}
System.out.println("程序结束!");
boolean rain = true;
if (rain) {
System.out.println("今天不上课"); //条件满足,执行,输出:今天不上课
}
System.out.println("执行程序结束!");
2、if-else选择结构
语法:
if (条件) {
//代码块1
} else {
//代码块2
}
即:if (boolean) { A } else { B }
执行流程如下:
例1:需求:如果今天下雨,我们就不上课
分析:今天下雨 -->是条件;条件满足-->执行不上课;条件不满足-->执行上课
boolean rain = true;
if (rain) {
System.out.println("今天不上课");
} else {
System.out.println("今天上课");
}
System.out.println("程序结束!");
例2:需求:如果gender的值为true则sex的值为 :精神小伙儿;如果gender的值为false则sex的值为:扒蒜老妹儿
boolean gender = false;
String sex;
if (gender) {
sex = "精神小伙儿";
} else {
sex = "扒蒜老妹儿";
}
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
3、三目运算符(三元运算符)
语法:条件 ? 表达式1 :表达式2
例:需求:如果gender的值为true则sex的值为 :精神小伙儿;如果gender的值为false则sex的值为:扒蒜老妹儿
boolean gender = false;
String sex = gender == true ? "精神小伙儿" : "扒蒜老妹儿";
System.out.println("性别 >>> " + sex); //输出结果为“扒蒜老妹儿”
System.out.println("程序执行结束");
4、多重if选择结构
语法:
if (条件1) {
//代码块1
} else if (条件2) { //else if 可以有多个
//代码块2
} else { //可以省略
//代码块3
}
注意事项:(1)多重if结构是自上而下进行判断的,只要有一个条件成立,其他的就不在执行了;
(2)else if可以写多个,但是必须配合if使用;
(3)可以配合else使用。
执行流程如下:
例:随机生成0到7之间不包含7的整数 0 1 2 3 4 5 6;如果这个数字是0 ,则输出今天是星期日, 如果是1则输出星期一, 如果是2则输出星期二 ,以此类推
Random random = new Random();
int i = random.nextInt(7); //随机生成0到7之间不包含7的整数
System.out.println(i);
if (i == 1) {
System.out.println("星期一");
} else if (i == 2) {
System.out.println("星期二");
} else if (i == 3) {
System.out.println("星期三");
} else if (i == 4) {
System.out.println("星期四");
} else if (i == 5) {
System.out.println("星期五");
} else if (i == 6) {
System.out.println("星期六");
} else {
System.out.println("星期日");
}
System.out.println("程序结束!");
5、switch结构(属于选择结构,也是分支语句)
语法:
switch (表达式) {
case 常量表达式1:
//代码块1
break;
case 常量表达式2:
//代码块2
break;
......
case 常量表达式n:
//代码块n
break;
default:
//代码块n+1
break;
}
注意事项:(1)表达式可以是byte、short、char、int、String类型
(2)switch语句的执行原理:switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配;匹配成功的分支执行
(3)匹配成功的分支执行,分支当中有“break”语句的话,整个switch语句终止
(4)匹配成功的分支执行,分支当中没有“break”语句的话,直接进入下一个分支执行(不进行匹配);这种现象称为case穿透现象
(5)所有分支都没有匹配成功,当有default的语句,会执行default分支当中的程序
例:需求:随机生成0到7之间不包含7的整数 0 1 2 3 4 5 6;如果这个数字是0 ,则输出今天是星期日, 如果是1则输出星期一, 如果是2则输出星期二 ,以此类推
Random random = new Random();
int i = random.nextInt(7);
System.out.println(i);
switch (i) {
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;
case 6:
System.out.println("星期六");
break;
default:
System.out.println("星期日");
break;
}
System.out.println("程序结束!");
此外,如果安装JDK版本比较高,可以支持以下写法:
Random random = new Random();
int i = random.nextInt(7);
System.out.println(i);
switch (i) {
case 1 -> System.out.println("星期一");
case 2 -> System.out.println("星期二");
case 3 -> System.out.println("星期三");
case 4 -> System.out.println("星期四");
case 5 -> System.out.println("星期五");
case 6 -> System.out.println("星期六");
default -> System.out.println("星期日");
}
System.out.println("程序结束!");