java语言中的选择结构

java语言中的选择结构

1、基本if选择结构

语法:
if(布尔表达式){
//代码块
}

执行流程:

  • 对布尔表达式进行判断。
  • 结果为true,则先执行代码块,再执行后续代码。
  • 结果为false,则跳过代码块,直接执行后续代码。

代码示例:

public class Test{
	public static void main(String[] args){
		double score = 100.0;
		if( score == 100.0){
			System.out.println("满分");
		}
	}
}

2、if else选择结构

语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}

执行流程:

  • 对布尔表达式进行判断。
  • 结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
  • 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。

代码示例:

public class Test{
	public static void main(String[] args){
		double score = 100.0;
		if( score == 100.0){
			System.out.println("满分");
		}else{
			System.out.println("没有满分");
		}
	}
}

3、多重if选择结构

语法:
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}

执行流程:

  • 表达式1为true,则执行代码块1,再退出整个结构。
  • 表达式2为true,则执行代码块2,再退出整个结构。
  • 表达式3为true,则执行代码块3,再退出整个结构。
  • 以上均为false,则执行代码块4,再退出整个结构。
注意:表达式之间相互排斥,有一个为true,其他均不再执行。
  • 适用区间判断,但要保证条件顺序(从大到小、从小到大)。
public class Test{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩:");
        float score = sc.nextFloat();
        if (90 <= score) {
            System.out.println("优秀");
        } else if (80 <= score) {
            System.out.println("良好");
        } else if (60 <= score) {
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
    }
}

4、嵌套if选择结构

语法:
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}

执行流程:

  • 当外层条件满足时,再判断内层条件。
注意:
(1)一个选择结构中,可嵌套另一个选择结构。
(2)嵌套格式正确的情况下,支持任意组合。
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩(0-100):");
        float score = sc.nextFloat();
        if(0 <= score && score <= 100) {
            if (90 <= score) {
                System.out.println("优秀");
            } else if (80 <= score) {
                System.out.println("良好");
            } else if (60 <= score) {
                System.out.println("及格");
            }else {
                System.out.println("不及格");
            }
        }else {
            System.out.println("请输入正确的成绩!");
        }
    }
}

5、switch分支结构

语法:
switch(变量 | 表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}

可判断的类型:

  • byte、short、int、char、String(JDK 1.7之后)、enum(JDK 1.5 / 枚举)

不可判断的类型:

  • long、float、double、boolean

执行流程:

  • 如果变量中的值等于值1,则执行逻辑代码1。
  • 如果变量中的值等于值2,则执行逻辑代码2。
  • 如果变量中的值等于值n,则执行逻辑代码n。
  • 如果变量中的值没有匹配的case值时,执行default中的逻辑代码。
注意:当匹配的case执行后,不会自动退出整个结构,而是继续向下执行。
  • break关键字可在匹配的case执行后,跳出整个结构。
  • 适用等值判断。
/**
 *      默认自己有存款10万,从键盘录入成绩,根据成绩来进行奖罚,
 *      超过90分则奖励1万
 *      超过80分则奖励5千
 *      超过70分则奖励1千
 *      超过60分则不奖励
 *      低于60分的则扣3千
 *      打印最终的存款数
 */
public class demo02 {
    public static void main(String[] args) {
        double ck = 10.0;
        Scanner sc = new Scanner(System.in);
        System.out.println("初始存款为10万元!");
        System.out.println("请输入成绩(0-100):");
        float cs = sc.nextFloat()/10;
        if(0 <= cs && cs <=10) {
            switch ((int)cs){
                case 10:
                case 9:
                    ck+=1;
                    System.out.println("奖励一万元!");
                    break;
                case 8:
                    ck+=0.5;
                    System.out.println("奖励0.5万元!");
                    break;
                case 7:
                    ck+=0.1;
                    System.out.println("奖励0.1万元!");
                    break;
                case 6:
                    System.out.println("不奖励!");
                    break;
                default:
                    ck-=0.3;
                    System.out.println("扣除0.3万元!");
                    break;
            }
            System.out.println("最终存款为"+ck+"万元");
        }else{
            System.out.println("请输入正确的成绩!");
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值