选择结构

if单选择结构

我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示:

if(布尔表达式){ 
  //如果布尔表达式为true将执行的语句 
}

意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。

public static void main(String[] args) { 

Scanner scanner = new Scanner(System.in); 

//接收用户输入 

System.out.print("请输入内容:"); 

String s = scanner.nextLine(); 

if (s.equals("Hello")){ //equals是用来比较字符串是否一致的

System.out.println("输入的是:"+s); 

}

System.out.println("End"); 

scanner.close(); 

} 

if双选择结构

if(布尔表达式){ 

//如果布尔表达式的值为true 

}else{ 

//如果布尔表达式的值为false 

} 

package Demo;
import java.util.Scanner; //导入Scanner类

public class Hello {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入成绩:");
    int score = scan.nextInt();
    if (score>=60){
        System.out.println("及格");
    }else{
        System.out.println("不及格");
    }
        scan.close();
    }
}

if多选择结构

if(布尔表达式 1){ 

//如果布尔表达式 1的值为true执行代码 

}else if(布尔表达式 2){ 

//如果布尔表达式 2的值为true执行代码 

}else if(布尔表达式 3){ 

//如果布尔表达式 3的值为true执行代码 

}else { 

//如果以上布尔表达式都不为true执行代码 

} 


一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

package Demo;
import java.util.Scanner; //导入Scanner类

public class Hello {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scan.nextInt();
        if (score == 100) {
            System.out.println("S级");
        } else if (score < 100 && score >= 90) {
            System.out.println("A级");
        } else if (score < 90 && score >= 80) {
            System.out.println("B级");
        } else if (score < 80 && score >= 70) {
            System.out.println("C级");
        } else if (score < 70 && score >= 60) {
            System.out.println("D级");
        } else if (score < 60 && score >= 0) {
            System.out.println("不及格");
        } else {
            System.out.println("非法操作");
        }
        scan.close();
    }
}

嵌套的if结构

使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if...else。

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        double num = scan.nextDouble();
        if (num % 2 == 0) {
            if (num % 3 == 0){
                System.out.println("你输入的数字可以被2和3整除");
            }else{
                System.out.println("你输入的数字能被2整除,但不能被3整除");
            }
        }else {
            if (num % 3 ==0){
                System.out.println("你输入的数字能被3整除,但不能被2整除");
            }else{
                System.out.println("你输入的数字不能被2整除,也不能被3整除");
            }
        }

        scan.close();
    }

switch多选择结构

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

switch(expression){ 

case value : 

//语句 

break; //可选 

case value : 

//语句 

break; //可选 

//你可以有任意数量的case语句 

default : //可选 

//语句 

} 

switch case 语句有如下规则:

  • switch 语句中的变量类型可以是:byte、short、int或者char。从JavaSE 7开始switch支持字符串 String类型,同时case标签必须为字符串常量或字面量。
  • case语句中的值(即标签如case 'A'中的'A')的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
  • 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。这种情况即case穿透。
  • switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一个)。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
public class Hello {
    public static void main(String[] args) throws Exception{
        System.out.println("请输入你的评级:");
        char grade=(char)System.in.read(); //Scanner不方便输入单个字符,换in.read方法
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("一般");
                break;
            case 'D':
                System.out.println("及格");
                break;
            default:
                System.out.println("Unknown");
        }
    }

JDK7增加了字符串表达式

public class Hello {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入暗号:");
        String sign = scan.next();

        switch (sign){
            case "已婚":
                System.out.println("陈睿");
                break;
            case "648":
                System.out.println("氪不改命");
                break;
            case "臭死了":
                System.out.println("114514");
                break;
            case "黑暗降临":
                System.out.println("MIHOYO");
                break;
            default:
                System.out.println("Unknown");
        }
        scan.close();
    }
posted @ 2022-03-26 20:45  ben10044  阅读(36)  评论(0)    收藏  举报