Day10 if选择结构和switch选择

选择结构

If选择结构

If单选择结构

  • 判断一样东西是否可行,然后才执行
if(布尔值表达式){
    //如果布尔表达式为true将执行的语句
}

public class DemoTest06 {
    public static void main(String[] args) {
        int a=66;

        Scanner scanner = new Scanner(System.in);
        int b=scanner.nextInt();
        if (b==a) {
            System.out.println("两者相等");
        }
        System.out.println("End");

        scanner.close();
    }
}
//数字判断
public class DemoTest07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String a= scanner.nextLine();
        if (a.equals("Hello,you are so handsome!")){//在字符串中,相等的含义使用单词equals
            System.out.println(a);
        }
        System.out.println("End");
        scanner.close();
    }
}
//字符串判断

If双选择结构

  • 比如:如果成功注册,需要支付一万元定金;如果注册失败,需要重新注册
if(布尔表达式){
    //如果布尔值为ture
}else{
    //如果布尔值为false
}

  • 利用上图数字判断为例
public class DemoTest06 {
    public static void main(String[] args) {
        int a=66;//也可以不先定义这个,在下面写if(b=66)即可

        Scanner scanner = new Scanner(System.in);
        int b=scanner.nextInt();
        if (b==a) {
            System.out.println("两者相等");
        }else{
            System.out.println("两者不相等");
        }

        scanner.close();
    }
}

If多选择结构

if(布尔表达式1){
    //如果布尔值表达式1的值为true执行代码
}else if(布尔表达式2){
    //如果布尔值表达式2的值为true执行代码
}else if(布尔表达式3){
    //如果布尔值表达式3的值为true执行代码
}
  • 成绩分级
package Flowcontro;

import java.util.Scanner;

public class DemoTest08 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a=scanner.nextInt();

        if(a<=100&&a>=90){//此处需要使用逻辑运算符设计区间
            System.out.println("该生成绩为A+");
        }else if(a<90&&a>=60){
            System.out.println("该生成绩为B+");
        }else if(a>=0&&a<60){
            System.out.println("该生成绩为F");
        }else{
            System.out.println("成绩不合法");//一定要逻辑严谨,成绩有头有尾
        }
        scanner.close();
    }
}

注意点

  • if语句至多有一个else语句,else语句在所有的else if语句之后
  • if语句可以有若干个else if语句,他们必须在else语句之前
  • 一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行

嵌套If语句

//语法
if(布尔表达式1){
    //如果布尔表达式1为true执行代码
    if(布尔表达式2){
        //如果布尔表达式2为true执行代码
    }
}
  • 分区思想,提高查找效率

Switch多选择结构

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

可使用类型

  • byte / short / int /char
  • 从Java SE7开始,支持字符串String类型了
  • case标签必须为字符串常量或者字面量
//语法
switch(expression){
    case value1 :
        //语句
        break;//可选
    case value2 :
        //语句
        break;//可选
        //你可以有任意数量的case语句
        default ://可选
        //语句
}
package Flowcontro;

import java.util.Scanner;

public class DemoSwitch07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char a=scanner.next().charAt(0);//关于scanner能获取char类型的代码(详细见拾荒记)
        switch (a){
            case 'A' :
                System.out.println("优秀");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case 'B':
                System.out.println("良好");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case 'C':
                System.out.println("较差");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case 'D':
                System.out.println("合格");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case 'E':
                System.out.println("不及格");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            default:
                System.out.println("等级非法");

        }
        scanner.close();
    }
}
  • 由于Java SE7之后可以使用字符串,可直接用字符串改进上述代码
package Flowcontro;

import java.util.Scanner;

public class DemoSwitch07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String a=scanner.next();
        switch (a){
            case "A" :
                System.out.println("优秀");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case "B":
                System.out.println("良好");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case "C":
                System.out.println("较差");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case "D":
                System.out.println("合格");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            case "E":
                System.out.println("不及格");
                break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
            default:
                System.out.println("等级非法");
        }
        scanner.close();
    }
}
posted @ 2021-09-24 17:00  Hacker-红烧肉  阅读(35)  评论(0)    收藏  举报