Java基础:选择结构(if、switch)

目录

java选择结构有两种:

1.if选择结构

1-1 单if语句

1-2 if-else语句

1-3 多重if

1-4 嵌套if

2.switch结构

3.if、switch的异同点:


java选择结构有两种:

1.if选择结构

2.switch选择结构

1.if选择结构

以下由易到难,由浅入深的顺序

1-1 单分支if语句

格式:

if(条件表达式){

            //如果条件表达式结果为真,则可以运行到该程序内

            //否则会跳过该程序段

}

图解:

先判断“表达式”的值,如果值为真(非零),则执行“语句”;如果值为假(零),则不执行语句。 

1-2 双分支if语句(if-else)

!注意:else和if条件互为补集,if-else结构构成全集

格式:

if(条件){

        //语句1:条件为true的情况下会运行

}

else{           

        //语句2:条件为false的情况下运行

}

图解:

先判断“表达式”的值,如果值为真(非零),则执行“语句1”;如果值为假(零),则执行“语句2”。可见,语句1和语句2不会同时执行,也不会都不执行,总是从二者中选其一执行,因此称为双分支选择结构。 

 

1-3 多重if语句

格式:

if(条件1){

        //语句1:条件1为true时运行

}

else if(条件2){

        //语句2:条件1为false且条件2为true时运行

}

else if(条件3){

        //语句3:条件1、2为false且条件3为true时运行

}

else{

        //语句4:条件1、2、3都为false时运行

}

 图解:

首先依次判断表达式1的值,若其值为真就执行语句1,若其值为假就继续判断表达式2,依次类推,如果所有表达式都为假,就执行语句n。

案例:

/**
 * 实现成绩的优良中差评级,大于90分为优,大于75为良,大于等于60为及格,小于60为不及格
 */

import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入成绩(0-100之内的整数)");
        double score=input.nextDouble();
        if (score>90){//大于90
            System.out.println("成绩为优");
        }
        else if(score>75){//76-90
            System.out.println("成绩为良");
        }
        else if(score>=60){//60-75
            System.out.println("成绩为合格");
        }
        else{//小于60
            System.out.println("成绩为不合格");
        }
    }
}

1-4 if嵌套语句

格式:

if(条件1){

        //语句1:条件1为true

        if(条件2){

                //语句2:条件1、2都为true

        }

        //语句3:条件1为true

}

else{

        //语句4:条件1位false

        if(条件3){

                //语句5:条件1位false,条件3为true

        }

        //语句6:条件1为false

}

 图解:

书写多层嵌套结构的程序时,应在每个分支处加花括号,以增加程序的可读性。若没有加花括号,则系统会根据就近配对原则进行各分支的匹配。

所谓“就近配对原则”是指:else子句总是和前面距离它最近的但是又不带其他else子句的if语句配对。

案例:

/**
 * 实现成绩的优良中差评级,大于90分为优,大于75为良,大于等于60为及格,小于60为不及格
 */

import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入成绩(0-100之内的整数)");
        double score = input.nextDouble();
        if (score >= 60) {
            if (score < 75) {//60-75
                System.out.println("成绩为及格");
            } 
            else 
                if (score < 90) {//76-90
                    System.out.println("成绩为良");
                } 
                else {//大于90
                    System.out.println("成绩为优");
                }
            } 
        else {//小于60
            System.out.println("成绩为不合格");
        }
    }
}

2.switch结构

格式:

switch(变量){

        case 常量1://代码

                        break;

        case 常量2://代码

                        break;

        ……

        default://代码

}

(1)switch语句中有4个关键字:switch、case、break、default。
(2)switch后面的表达式必须用圆括号括起来,且该表达式的值必须是整型或者字符型。
(3)case与其后面的常量表达式之间必须有空格,常量表达式后面是分号。常量表达式中不能含有变量或函数。常量表达式的值必须是整型或字符型。如果表达式的值为浮点型,则想办法转换为整型或字符型。否则会出现错误。
(4)所有case分支后面的常量表达式必须互不相同。
(5)default分支通常写在最后,也可以写在前面,它的位置不受限制。各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

(6)switch语句可以嵌套。

(7)在case后,允许有多个语句,可以不用{}括起来。

图解:

案例: 

import java.util.Scanner;

/**
 * 输出星期数
 * 从键盘输入一位整数,当输入1~7时,输出“星期一”~“星期日”
 * 输入其他数字时,提示用户重新输入
 */
public class WeekNum {
    public static void main(String[] args) {
        Scanner input= new Scanner(System.in);
        int num;
        do {
            System.out.println("请输入一位1-7之间的整数,输入0退出程序:");
            num=input.nextInt();
            switch(num){
                case 0:
                    System.out.println("程序结束");
                    break;
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("您输入的数字不合格,只能输入1-7范围的数字!");
            }
        }while(num!=0);
    }
}

3.if、switch的异同点:

等值判断用switch

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值