if-else结构
package com.lzy.javase.day05;
import org.junit.jupiter.api.Test;
/**
* @author lzy
* @version 1.0.0 2022/4/12 09:26
*/
public class IfTest {
@Test
public void test01() {
// 需求:如果今天下雨那么我们今天就不上课
// 分析:如果(今天下雨) 今天下雨是条件 条件满足 执行不上课
// 程序:if(布尔值){代码} if(boolean){code}
// boolean结果为true执行code boolean结果为false不执行code
boolean rain = false;
if (rain) {
System.out.println("今天不上课");
}
System.out.println("程序执行结束");
}
@Test
public void test02() {
// 需求:如果今天下雨那么我们今天就不上课
// 分析:如果(今天下雨) 今天下雨是条件 条件满足 执行不上课
// 程序:if(布尔值){代码}else{代码}
// if(boolean){A}else{B}
// boolean结果为true执行A boolean结果为false执行B
// 世界上最遥远的距离不上是生与死 而是我站在你面前你却不知道我爱你
// 世界上最遥远的距离不上是我站在你面前你不知道我爱你 而是我在if代码块你却在else代码块中
boolean rain = true;
if (rain) {
System.out.println("今天不上课");
} else {
System.out.println("今天上课");
}
System.out.println("程序执行结束");
}
@Test
public void test03() {
// 需求:
// 如果gender的值为true则sex的值为 精神小伙儿
// 如果gender的值为false则sex的值为 扒蒜老妹儿
boolean gender = false;
String sex;
if (gender) {
sex = "精神小伙儿";
} else {
sex = "扒蒜老妹儿";
}
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
}
@Test
public void test04() {
// 需求:
// 如果gender的值为true则sex的值为 精神小伙儿
// 如果gender的值为false则sex的值为 扒蒜老妹儿
boolean gender = false;
String sex = gender == true ? "精神小伙儿" : "扒蒜老妹儿";
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
}
}
switch结构
使用test01和02的多重if选择结构比较复杂和啰嗦,现在可以使用switch结构来解决问题,switch解决的是等值判断。
如何使用:
1.常量名不可重复
2.每一个case后面要有break结束语
3.default可以在任何位置,除了在最后break可以省略在其他位置都不可省略,建议都放在最后
4.switch后面的表达式类型只能是int byte short char 枚举 和jdk1.7以后的String
5.case后面的常量不是一定要连续的
6.表达式是哪个就会跳转到相对应的case语句
package com.lzy.javase.day05;
import org.junit.jupiter.api.Test;
import java.util.Random;
/**
* @author lzy
* @version 1.0.0 2022/4/12 10:56
*/
public class SwitchTest {
@Test
public void test01() {
// 需求:
// 随机生成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);
if (i == 0) {
System.out.println("星期日");
}
if (i == 1) {
System.out.println("星期一");
}
if (i == 2) {
System.out.println("星期二");
}
if (i == 3) {
System.out.println("星期三");
}
if (i == 4) {
System.out.println("星期四");
}
if (i == 5) {
System.out.println("星期五");
}
if (i == 6) {
System.out.println("星期六");
}
System.out.println("程序执行结束");
}
@Test
public void test02() {
// 需求:
// 随机生成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);
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("程序执行结束");
}
@Test
public void test03() {
// 需求:
// 随机生成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("星期一");
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("程序执行结束");
}
@Test
public void test04() {
// 需求:
// 随机生成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("程序执行结束");
}
@Test
public void test05() {
// 需求:
// 随机生成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("星期一");
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("程序执行结束");
}
}
比较switch和多重if选择结构
相同点:
都是用来处理多分支条件的结构
不同点:
switch结构:只能处理等值条件判断的情况
多重if选择结构:没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况
选择结构总结:
基本if选择结构: 处理单一或者组合条件的情况
if-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制
switch选择结构:多重分支并且条件判断是等值判断的情况。
处理系统异常:
switch结构中我们常常输入的是int类型的值,但是用户不知道,可能会输入其他类型的值,这样的话就会报出输入类型不匹配的异常,为了避免这种情况的出现,我们可以在最开始的时候对其进行判断和限制
方法如下:
if(input.hasNextInt()){
//这里是相关的seitch语句
}else{
//如果输入的不是数字
System.out.println("请输入正确的数字");
}