if (条件表达式) {
语句块;
}
其中“条件表达式”和“语句块”是比较重要的两个地方。条件表达式:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个布尔值。取值可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行。语句块:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略条件语句中的大括号 {}。当从编程规范角度不要省略大括号,省略大括号会使程序的可读性变差。
public static void main(String[] args) {
System.out.println("请输入一个数字:");
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 接收键盘输入数据
// 判断用户输入的数据是否大于100
if (num > 100) {
System.out.println("输入的数字大于100");
}
// 判断用户输入的数据是否等于100
if (num == 100) {
System.out.println("输入的数字等于100");
}
// 判断用户输入的数据是否小于100
if (num < 100) {
System.out.println("输入的数字小于100");
}
}
运行该程序,分别使用键盘输入 99、100 和 105,结果如下所示:
请输入一个数字: 99 输入的数字小于100
请输入一个数字: 100 输入的数字等于100
请输入一个数字: 105 输入的数字大于100
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
if (num1 > num2) {
System.out.println("num1大于num2");
}
if (num1 == num2) {
System.out.println("num2等于num2");
}
if (num1 < num2) {
System.out.println("num1小于num2");
}
}
该段选择语句判断了 num1 值和 num2 值的大于、等于和小于关系。此处 num1 为 50,num2 为 34,所以执行后会输出“num1 大于 num2”。
public static void main(String[] args) {
String username = "admin"; // 用户名
String userpass = "123456"; // 密码
String code = "0000"; // 验证码
if (username != "admin" && userpass != "123456" && code != "0000") {
System.out.println("登录失败!");
System.out.println("请检查输入的用户名、密码和验证码是否正确!");
}
}
在这里为 if 语句设置了一个复杂的复合表达式来验证登录条件。执行后的输出结果如下:
登录失败! 请检查输入的用户名、密码和验证码是否正确!
if (表达式) {
语句块1;
} else {
语句块2;
}
在上述语法格式中,如果 if 关键字后面的表达式成立,那么就执行语句块 1,否则的话则执行语句块 2,其运行流程如图 2 所示。
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
// 如果num1等于num2
if (num1 == num2) {
System.out.println("num1等于num2");
}
// 如果num1大于num2
if (num1 > num2) {
System.out.println("num1大于num2");
} else {
// 否则就是num1小于num2
System.out.println("num1小于num2");
}
}
双条件语句减少了代码的编写量,同时增强了程序的可读性。简化后的结果还是一样,执行后会输出“num1 大于 num2”。
if(表达式1) {
语句块1;
} else if(表达式2) {
语句块2;
...
} else if(表达式n) {
语句块n;
} else {
语句块n+1;
}
可以看出,else-if 结构实际上是 if-else 结构的多层嵌套。明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
if (num1 == num2) { // 如果num1等于num2
System.out.println("num1等于num2");
} else if (num1 > num2) { // 如果num1大于num2
System.out.println("num1大于num2");
} else { // 否则就是小于
System.out.println("num1小于num2");
}
}
如上述代码所示,num1 和 num2 不满足 if 语句的“num1==num2”条件,接着测试 else if 的“num1>num2”条件,满足该条件并输出“num1 大于 num2”。
public static void main(String[] args) {
System.out.println("请输入考试成绩:");
Scanner input = new Scanner(System.in);
int score = input.nextInt(); // 接收键盘输入数据
if (score >= 90) { // 考试成绩>=90
System.out.println("优秀");
} else if (score >= 80) { // 90>考试成绩>=80
System.out.println("良好");
} else if (score >= 60) { // 80>考试成绩>=60
System.out.println("中等");
} else { // 考试成绩<60
System.out.println("差");
}
}
当考试成绩为 90 分以上时,则执行第一个 if 语句,下面的 3 个条件判断语句不会执行;当考试成绩为 80 分以上 90 分以下时,则执行第一个 else if 语句;当考试成绩在 60~80 分,并且包含 60 分的成绩,则执行第二个 else if 语句;如果上述 3 个条件都不满足,则执行 else 语句。请输入考试成绩: 100 优秀
请输入考试成绩: 88 良好
请输入考试成绩: 50 差
if(表达式1) {
if(表达式2) {
语句块1;
} else {
语句块2;
}
} else {
if(表达式3) {
语句块3;
} else if(表达式4) {
语句块4;
} else {
if(表达式n) {
语句块n;
} else {
语句块n+1;
}
}
}
在上述格式中,应该注意每一条 else 与离它最近且没有其他 else 对应的 if 相搭配,其执行流程如图 4 所示。
public static void main(String[] args) {
String today = "周末";
String weather = "晴朗";
if (today.equals("周末")) {
if (weather.equals("晴朗")) {
System.out.println("去室外游乐场游玩");
} else {
System.out.println("去室内游乐场游玩");
}
} else {
System.out.println("去上班");
}
}
如上述代码所示,today 满足 if 语句的“today.equals("周末")”条件,接着测试 weather 是否满足“weather.equals("晴朗")”条件,满足该条件输出“去室外游乐场游玩”。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有