Java选择结构中的三种if语句
if语句
概念
if语句是单条件分支语句,即根据一个条件来控制程序执行。
语法格式
if (比较表达式) {
语句体;
}
执行流程
- 先计算比较表达式的值,看其返回值是true还是false
- 如果是true,就执行语句体
- 如果是false,就不执行语句体
注意事项
- 比较表达式无论简单还是复杂,结果必须是boolean类型。
- if语句中的{}可以省略不写,但为了增强程序的可读性,最好不要省略。
**if-else语句
概念
if-else是单条件分支语句,即根据一个条件来控制程序执行。
语法格式
if (比较表达式) {
语句体1;
}
else {
语句体2;
}
执行流程
- 先计算表达式的值,看其返回值是true还是false
- 如果是true,就执行语句体1
- 如果是false,就执行语句体2
练习题
获取两个数据中的最大值
源代码如下:
import java.util.Scanner;
public class demo9 {
public static void main(String[] avgs) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个整数:");
int x = sc.nextInt();
int y = sc.nextInt();
if (x > y) {
System.out.println("max = " + x);
}
else
{
System.out.println("max = " + y);
}
}
}
**if-else if-else语句(级联语句)
概念
if-else if-else语句是多条件分支的语句
语法格式
if (比较表达式1) {
语句体1;
} else if (比较表达式2) {
语句体2;
} else if (比较表达式3) {
语句体3;
}
…
else{
语句体n+1;
}
执行流程
- 先计算比较表达式1,看其返回值是true还是false
- 如果是true,则执行语句体1,if语句结束
- 如果是false,接着计算比较表达式2,看其返回值是true还是false
- 如果是true,就执行语句体2,if语句结束
- 如果是false,接着计算比较表达式3,看其返回值是true还是false
- 如果都是false,就执行语句n+1
练习题
使用if语句的嵌套获取三个数据中的最大值
源代码如下:
import java.util.Scanner;
public class demo11 {
public static void main(String[] avgs) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入三个数据:");
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
if (x > y) {
if (x > z) {
System.out.println("最大值是:" + x);
} else {
System.out.println("最大值是:" + z);
}
} else { //y<=x
if (y > z) {
System.out.println("最大值是:" + y);
}else {
System.out.println("最大值是:" + z);
}
}
}
}
**if语句和三元运算符的区别
三元运算符实现的,都能采用if语句实现,反之不成立
面试题
- 什么时候if语句实现不能用三元运算符改进?
- 当if语句控制的操作是一个输出语句时,不能用三元运算符改进
原因:三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。