在前面的课程中我们接触到的代码几乎都是按顺序的一行一行的执行。但实际上我们在项目中遇到的问题经常需要根据不同的情况去执行不同的操作。这时就需要用到条件语句。根据不同的条件去执行相应的代码以实现我们的功能需求。

1.if语句

语法:

if(布尔表达式){
	...... //当布尔表达式为true时要执行的语句
}

if语句当表达式为true时则会执行{}中的语句,为false时不执行{}中的语句,请看下面的例子:
在一个学生成绩查询系统中如果学生的成绩90以上(包括90分)则需要提示学生,你非常优秀,否则不作提示。

public class IfStudy {
    public static void main(String[] args) {
        int grade = 91;

        System.out.println("你的成绩是:" + grade + "分");
        if(grade >= 90){
            System.out.println("你非常优秀!");
        }
    }
}

运行结果:

你的成绩是:91分
你非常优秀!

把int grade = 91; 改成 int grade = 80; 再运行程序:

你的成绩是:80分

2.if…else语句

语法:

if(条件表达式){
	...... //表达式为true时,执行的语句
}else{
    ...... //表达式为false时,执行的语句
}

表达式为true时执行if后面{}中的语句,当表达式为false时,执行else后面{}中的语句, 请看下面的例子

例: 在一个学生成绩查询系统中我们希望60分(包含60分)以上时显示及格,否则时显示出不及格

public class IfElse {
    public static void main(String[] args) {
        int grade = 80;

        System.out.println("你的成绩是:" + grade + "分");
        if(grade >= 60){
            System.out.println("及格!");
        }else{
            System.out.println("不及格!");
        }

    }
}

运行结果是:

你的成绩是:80分
及格!

把int grade = 80; 改成 int grade = 50; 再运行程序:

你的成绩是:50分
不及格!

3.if…else if…else语句

语法:

if(条件表达式){
	...... //表达式为true时,执行的语句
}else if(条件表达式){
	...... //表达式为true时,执行的语句
}else{
    ...... //表达式为false时,执行的语句
}

表达式为true时执行if后面{}中的语句,当表达式为false时,再判断else if后面的条件表达式,为true时则执行else if后面{}中的语句,为false时则执行else后面{}中的语句, 请看下面的例子

例:在一个学生成绩查询系统中我们需要根据学生的成绩,来判断出优良中差四个等级, 标准如下:

得分范围

等级

得分>=90分

优秀

75分<=得分<90分

良好

60分<=得分<75分)

一般

得分<60分

较差

public class IfElseIfElse {
    public static void main(String[] args) {
        int grade = 95;

        System.out.println("你的成绩是:" + grade + "分");
        if(grade >= 90){
            System.out.println("优秀!");
        }else if(grade >= 75){
            System.out.println("良好!");
        }else if(grade >= 60){
            System.out.println("一般!");
        }else{
            System.out.println("较差!");
        }

    }
}

运行结果:

你的成绩是:95分
优秀!

把int grade = 95; 改成 int grade = 80; 再运行程序:

你的成绩是:80分
良好!

把int grade = 80; 改成 int grade = 65; 再运行程序:

你的成绩是:65分
一般!

把int grade = 65; 改成 int grade = 50; 再运行程序:

你的成绩是:50分
较差!

4.if…else的嵌套

if…else的嵌套是指if或else的{}里面的语句可以包含if…else语句
在上一部分中的例子也可以改成下面的写法结果是一样的。

public class IfNest {
    public static void main(String[] args) {
        int grade = 95;

        System.out.println("你的成绩是:" + grade + "分");
        if(grade >= 75){
            if(grade >= 90){
                System.out.println("优秀!");
            }else{
                System.out.println("良好!");
            }
        }else{
            if(grade >= 60){
                System.out.println("一般!");
            }else{
                System.out.println("较差!");
            }
        }

    }
}

注:理论上可以if…else可以无限多级的嵌套,但实际应用时应该避免太深的嵌套,一是因为嵌套级数太多容易逻辑上出现错误造成程序的BUG,二是嵌套级数越多代码可读性就越差,不利于自已和团队其他程序对代码的阅读和维护。