学科分类
目录
Java基础

if条件语句

if条件语句分为三种语法格式,每一种格式都有其自身的特点,下面分别进行介绍。

1.if语句

if语句是指如果满足某种条件,就进行某种处理。例如,如果一个人的年龄不满18周岁,那么就可以判定这个人是未成年人。这句话可以通过下面的一段伪代码来描述:

如果年龄不满18周岁
  此人是未成年人

在上面的伪代码中,“如果”相当于Java中的关键字if,“年龄不满18周岁”是判断条件,需要用()括起来,“此人是未成年人!”是执行语句,需要放在{}中。在if语句中的伪代码如下:

if (年龄不满18岁) {
  此人是未成年人!
}

上面的例子就描述了if语句的用法,在Java中,if语句的具体语法格式如下:

if (判断条件){
  执行语句
}

上述语法格式中,判断条件是一个布尔值,当判断条件为true时,就会执行{}中的执行语句。if语句的执行流程如图1所示。

图1 if语句流程图

接下来就使用if条件语句对上面的情景描述进行案例演示,如文件1所示。

文件1 Example07.java

 1    public class Example07 {
 2        public static void main(String[] args) {
 3            int age = 17;    //假设年龄为17岁
 4            if (age < 18) { // 判断年龄是否满18岁
 5                System.out.println("此人是未成年人!");
 6            }
 7        }
 8    }

运行结果如图2所示。

图2 运行结果

文件1中,定义了一个int类型的变量age(年龄),并假设属性值为17。在if语句的判断条件中判断age的值是否小于18,很明显条件成立,将会选择执行if后面{}中的执行语句,输出“此人是未成年人!”的信息。

2.if…else语句

if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。

if…else语句的语法格式如下:

if (判断条件){
    执行语句1
    ...
}else{
    执行语句2
    ...
}

上述语法格式中,判断条件是一个布尔值。当判断条件为true时,会执行if后面{}中的执行语句1,否则会执行else后面{}中的执行语句2。if…else语句的执行流程如图3所示。

image-20200525163008267

图3 if…else语句流程图

接下来使用if…else语句来实现一个判断奇偶数的程序,如文件2所示。

文件2 Example08.java

 1    public class Example08 {
 2        public static void main(String[] args) {
 3            int num = 19;
 4            if (num % 2 == 0) {
 5                // 判断条件成立,num能被2整除
 6                System.out.println(num+"是一个偶数");
 7            } else {
 8                  // 判断条件不成立,num不能被2整除
 9                System.out.println(num+"是一个奇数");
 10            }
 11        }
 12    }

运行结果如图4所示。

图4 运行结果

文件2中,变量num的值为19,19%2的结果为1,不等于0,判断条件不成立,因此会执行else后面{}中的语句,输出“19是一个奇数”的信息。

小提示:

上述案例中的if…else语句还可以通过前面所学习的三元运算来替换,替换后的输出语句如下:

System.out.println(num % 2 == 0 ? num+"是一个偶数" :num+"是一个奇数" );

3.if…else if…else语句

if…else if…else语句用于对多个条件进行分支判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级划分:如果分数大于80分,那么等级为优;否则,如果分数大于70分,那么等级为良;否则,如果分数大于60分,那么等级为中;否则,等级为差。

if…else if…else语句具体语法格式如下。

if (判断条件1) {
    执行语句1
} else if (判断条件2) {
    执行语句2
}
...
else if (判断条件n) {
    执行语句n
} else {
    执行语句n+1
}

上述语法格式中,判断条件都是布尔值。当判断条件1为true时,if后面{}中的执行语句1会执行;当判断条件1为false时,会继续执行判断条件2,如果为true,则执行语句2,以此类推。如果所有的判断条件都为false,则意味着所有条件均未满足,就会执行else后面{}中的执行语句n+1。

if…else if…else语句的执行流程如图5所示。

图5 if…else if…else语句的流程图

接下来使用if…else if…else语句来实现对学生考试成绩进行等级划分的程序,如文件3所示。

文件3 Example09.java

 1    public class Example09 {
 2        public static void main(String[] args) {
 3            int grade = 75; // 定义学生成绩
 4            if (grade > 80) {
 5                // 满足条件 grade > 80
 6                System.out.println("该成绩的等级为优");
 7            } else if (grade > 70) {
 8                // 不满足条件 grade > 80 ,但满足条件 grade > 70 
 9                System.out.println("该成绩的等级为良");
 10            } else if (grade > 60) {
 11                // 不满足条件 grade > 70 ,但满足条件 grade > 60 
 12                System.out.println("该成绩的等级为中");
 13            } else {
 14                // 不满足条件 grade > 60 
 15                System.out.println("该成绩的等级为差");
 16            }
 17        }
 18    }

运行结果如图6所示。

图6 运行结果

文件3中,定义了学生成绩grade为75,由于它不满足第一个判断条件grade>80,因此会继续向下执行第二个判断条件;由于满足了grade>70的条件,因此会输出“该成绩的等级为良”的信息。

点击此处
隐藏目录