Java基础---选择结构

本文详细介绍了Java编程中的选择结构,包括if单选择、if双选择、if多选择、嵌套if和switch多选择结构。通过实例代码展示了如何根据条件执行不同代码块,并解释了break在switch语句中的作用。此外,还提到了String类型的switch语句用法。
摘要由CSDN通过智能技术生成

选择结构

1、if单选择结构
2、if双选择结构
3、if多选择结构
4、嵌套的if结构
5、switch多选择结构

if单选择结构

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

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

代码:

package struct;

import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入内容:");
        String s = scanner.nextLine();

        // equals判断字符串是否相等
        if (s.equals("Hello")) {
            System.out.println(s);
        }
        System.out.println("End");

        scanner.close();
    }
}

我们先来一次错误的输入:
在这里插入图片描述
我们输入的是:safaf,程序没有走到if语句中去,因为不满足if语句的条件,所以输出End
我们输入Hello看看:
在这里插入图片描述
输入的Hello满足if语句的条件,所以将输入的Hello输出。

if双选择结构

那现在有一个需求,公司要收购一个软件,成功了,给人支付100万,失败了,自己找人开发。这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。

语法
if (布尔表达式) {
  //如果布尔表达式的值为true
} else {
  //如果布尔表达式的值为false
}

代码:

package struct;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        //考试分数大于60分为及格,小于60分为不及格

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();

        if (score > 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}

我们输入80:
在这里插入图片描述
我们输入50:
在这里插入图片描述

if多选择结构

我们发现刚才的代码不符合实际情况,真实的情况可能还存在ABCD,存在区间多级判断,比如:90到100是A,80到90是B。。。等等,在生活中我们的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题。

语法
if (布尔表达式 1) {
  //布尔表达式 1的值为true执行的代码
} else if (布尔表达式 2) {
  //布尔表达式 2的值为true执行的代码
} else if (布尔表达式 3) {
  //布尔表达式 3的值为true执行的代码
} else {
  //如果以上布尔表达式的值都不为true执行的代码
}

代码:

package struct;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();

        if (score == 100) {
            System.out.println("恭喜满分");
        }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("输入的成绩不合法!!!");
        }

        scanner.close();
    }
}

我们来输入成绩120:
在这里插入图片描述
我们来输入成绩为80:
在这里插入图片描述
我们来输入成绩为59:
在这里插入图片描述
也就是说:输入一个成绩,满足哪个if条件语句,就会输入相应的执行语句。

嵌套的if结构

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

语法
if (布尔表达式 1) {
  //布尔表达式 1的值为true执行的语句
  if (布尔表达式 2) {
    //布尔表达式 2的值为true执行的语句
  }
}

思考:我们要找一个数,在1~100之间。

switch多选择结构

多选择结构还有一个实现方式就是switch…case语句
switch…case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch语句中的变量类型可以是:
1、byte、short、int或char
2、从javase7开始,支持字符串String类型
3、同时case标签必须为字符串常量或字面量

语法
switch (expression) {
  case value:
    //语句
    break;  //可选
  case value:
    //语句
    break;  //可选
  //你可以有任意数量的case语句
  default: //可选
    //语句
}

代码:

package struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        char grade = 'C';

        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;
            case 'E':
                System.out.println("不及格");
                break;
            default:
                System.out.println("未知等级");
        }
    }
}

在这里插入图片描述
结果输出为一般

在这里有一个case穿透现象,我们来看看是怎么穿透的
代码:

package struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        char grade = 'C';

        switch (grade) {
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("一般");

            case 'D':
                System.out.println("及格");

            case 'E':
                System.out.println("不及格");

            default:
                System.out.println("未知等级");
        }
    }
}

在这里插入图片描述
会发现,如果一个case语句下没有break结束语句,那么程序会在该满足条件的语句输出后继续输出后面的语句,知道程序执行完毕。

String类型

代码:

package struct;

public class SwitchDemo02 {

    public static void main(String[] args) {
        String name = "狂神";

        switch (name) {
            case "狂神":
                System.out.println("狂神");
                break;
            case "kuangshen":
                System.out.println("kuangshen");
                break;
            default:
                System.out.println(".........");
        }
    }
}

输出结果为:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值