Java中 if 、switch条件语句

生活我们经常需要判断,然后决定是否要做某件事。例如:如果考试成绩大于 90 分,则奖励一个 笔记本电脑。对于这种“需要先判断条件,条件满足后才执行的情况”,就可以使用 if 条件语句实现。

一、Java条件语句之 if 语句

语法 if(条件){
条件成立时执行的代码
}

执行过程:

java学生成绩分等级switch java写成绩等级switch中用if_条件语句

 

如:

public class if_demo{
    public static void main(String[] args){
        int score=95;
        if(score>90){
            System.out.println("奖励一个笔记本电脑");
        }
    }
}

注意:如果 if 条件成立时的执行语句只有一条,是可以省略大括号(不建议省略)。但执行语句有多条,就不可省略。

1.1 Java条件语句之 if...else
  1. if...else.... 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时, 则进入 else 部分。例如,如果考试成绩大于 90 分,则奖励一个笔记本电脑 ,否则罚做 500 个俯卧撑。语法:
if (条件的布尔表达式true/false){
代码块1
}else{
代码块2
}

执行过程:

如:

public class if_demo{
    public static void main(String[] args){
        int score=95;
        if(score>90){
            System.out.println("奖励一个笔记本电脑");
        }else{
            System.out.println("罚款500个俯卧撑");
        }
    }
}
1.2 Java条件语句之多重 if

多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码。例如,如果考试成绩大于 90 分,则奖励一个 笔记本电脑 ,如果成绩介于 70 分至 90 分之间,则奖励一个华为手机,否则罚做 500 个俯卧撑。

语法:

if(条件1){
代码块1
}else if(条件2){
代码块2
}.......else{
代码块3
}

执行过程:

java学生成绩分等级switch java写成绩等级switch中用if_System_02

如:

public class if_demo{
    public static void main(String[] args){
        int score=95;
        if(score>90){
            System.out.println("奖励一个笔记本电脑");
        }else if(score>70){
            System.out.println("奖励一个华为手机");
        }else{
            System.out.println("罚款500个俯卧撑");
            }
        }
    }
}

该段代码的含义是:如果 score 值大于90,则奖励一个笔记本电脑,当 score 值小于等于 90 时,先判断 score 是否大于 70 ,如果 score 是介于 70--90 之间,则奖励一个华为手机,如果成绩小于等于 70 ,则罚做 500 个俯卧撑

当需要判断的条件是连续的区间时,使用多重 if 语句是非常方便

1.3 Java条件语句之嵌套 if

嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。例如,活动计划的安排,如果今天是工作日,则去上班,如果今天是周末,则外出游玩;同时,如果周末天气晴朗,则去室外游乐场游玩,否则去室内游乐场游玩。

语法:

if(条件1){
 if(条件2){
 代码块1
 }else {
 代码块2
 }else{
 代码块3
}
}

执行流程:

java学生成绩分等级switch java写成绩等级switch中用if_代码块_03

如:

public class if_demo{
    public static void main(String[] args){
        String today = "周末";
        String weekend = "晴朗";
        if(today.equals("周末")){    //注:外层结构
            if(weekend.equals("晴朗")){   //注: 内层结构  
                System.out.println("去室外游乐场游玩");
            }else{
                System.out.println("去室内游乐场游玩");
            }
        }else{
             System.out.println("去上班");
        }
        
    }

扩展知识点: equals ( )用于判断字符串的内容是否相同,相同则返回true,反之false

二、Switch 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

2.1语法:


switch(变量){
    case 条件:
       //语句
       break; //可选
    case 条件 :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
       break; //可选
}

如:打印出1-12月对应的季节。

public class Switch_demo{
    public static void main(String[] args){
        //模拟一个月份
        int month =7;
        switch(month){
            case 12:
            case 1:
            case 2:
                System.out.println("冬天");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春天");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏天");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋天");
                break;
        }
    }
}

break; 起到终止的作用,如果将break去掉之后,语句直接往下执行,称这种情况为穿透。

示例:

java学生成绩分等级switch java写成绩等级switch中用if_代码块_04

default 语句可以随意写,也可以不写。上面的例子中都是没有写default;下图示例default随意写执行的结果不受影响:

java学生成绩分等级switch java写成绩等级switch中用if_System_05

  注意点:1.switch 适用于结果确定,结果数量确定(不易过多,一般12个左右)

              2.default 的位置可以随意写。                                                                                                                             

              3.break起到终止的作用   

              4.当注释掉break/不写之后,语句可以直接往下执行,称这种情况为穿透 

              5.switch可以支持的类型 byte short int  JDK1.5及之后支持enum枚举   JDK1.7之后支持String 

如何选择(if 和 switch)

当结果确定且数量少,建议选择 switch ,如果是常量判断也可以选择使用switch

如果是范围型的或者常量也可以选择if(if是万能的)