if选择结构
if选择结构必须先定义一个布尔值
如果布尔值为true,那么执行if后面的语句
如果布尔值为false则不会执行if后面的语句
下图中布尔值为false所以不会执行System.out.println("今天不上课");语句,故不会输出:今天不上课
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
输出结果为程序执行结束
public void test06() {
boolean rain = false;
//定义一个变量rain 此变量的值为false
if (rain) {
System.out.println("今天不上课");
}
System.out.println("程序执行结束");
}
那么布尔值为true的情况是怎样的呢?
下图中布尔值为true所以会执行System.out.println("今天不上课");语句,故输出:今天不上课
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
所以运行结果为 今天不上课 程序执行结束
public void test06() {
boolean rain = true;
if (rain) {
System.out.println("今天不上课");
}
System.out.println("程序执行结束");
--------------------------------------------------------------------------------------------------------------------------------
布尔型有两个值 true 和false,但上图中语句只包含了其中一种情况,怎么提高代码执行效率呢,于是有了下面这些语句
当布尔型得值为true(真)时则,会执行System.out.println("今天不上课");语句,故输出:今天不上课
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
所以运行结果为 今天不上课 程序执行结束
这些语句和上面的语句有什么区别呢?
上面的语句比较繁琐,如果想输出true 和false两个值就需要写两段代码
下面的语句可以提高代码执行效率,如果想输出另一个值只需要修改布尔型的值即可
public void test07() {
boolean rain = true;
if (rain) {
System.out.println("今天不上课");
} else {
System.out.println("今天上课");
}
System.out.println("程序执行结束");
}
当布尔型得值为false(假)时则,会执行System.out.println("今天上课");语句,故输出:今天不上课
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
所以运行结果为 今天上课 程序执行结束
public void test07() {
boolean rain = false;
if (rain) {
System.out.println("今天不上课");
} else {
System.out.println("今天上课");
}
System.out.println("程序执行结束");
}
--------------------------------------------------------------------------------------------------------------------------------
先定义gender布尔值为true
在定义 一个字符型的 sex
当布尔型得值为true(真)时则,会执行sex = "精神小伙儿";语句,故输出:精神小伙
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
所以运行结果为 性别>>> 精神小伙 程序执行结束
public void test03() {
boolean gender = true;
String sex;
if (gender) {
sex = "精神小伙儿";
} else {
sex = "扒蒜老妹儿";
}
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
当布尔型得值为false(假)时则,会执行sex = "扒蒜老妹儿"语句,故输出:扒蒜老妹
System.out.println("程序执行结束");不在选择语句中所以无论 布尔值无论为true还是false都会输出:程序执行结束
所以运行结果为 性别>>> 扒蒜老妹儿 程序执行结束
public void test08() {
boolean gender = false;
String sex;
if (gender) {
sex = "精神小伙儿";
} else {
sex = "扒蒜老妹儿";
}
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
}
---------------------------------------------------------------------------------------------------------------------------------
三目运算符:让 sex =gender的值 gender得值为真(true)的话就输出 性别>>> 精神小伙 程序执行结束
让 sex =gender的值 gender得值为false(假)的话就输出 性别>>> 扒蒜老妹儿 程序执行结束
public void test09() {
boolean gender = true;
String sex = gender == true ? "精神小伙儿" : "扒蒜老妹儿";
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
}
}
public void test09() {
boolean gender = false;
String sex = gender == true ? "精神小伙儿" : "扒蒜老妹儿";
System.out.println("性别 >>> " + sex);
System.out.println("程序执行结束");
--------------------------------------------------------------------------------------------------------------------------------
随机产生一个0-7的数
输出这个数
如果 i==0则输出星期日,但是此时代码并不会停止运行,这些语句会从 i==0 一直执行到 i==6 执行效率低,于是有了下列代码
public void test10() {
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("程序执行结束");
}
随机产生一个0-7的数
输出这个数
如果 i==0则输出星期日,此时代码停止运行,效率较高。。
public void test11() {
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("程序执行结束");
}
switch语句
switch语句格式
switch(变量){
case 变量:(case语句可以写多个)
输出语句
break;
}
随机产生一个随机数
定义一个变量i
case和if的意思相同,当变量i = 3 时输出星期三,但是代码从上往下,从左往右执行会导致 case 3下面的语句也会被输出于是我们可以在输出语句后面加上break;解决这个问题
public void test12() {
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("程序执行结束");
}
可以看到执行结果变得正常
public void test12() {
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("星期日");
}
System.out.println("程序执行结束");
}
switch语句另一种格式
这是switch语句的另一种格式,需要高版本jdk才能使用输出结果和上图相同
public void test13() {
// 需求:
// 随机生成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("程序执行结束");
}