成绩分级——Java

 前言:阅读时请把本文与上一篇文章的if else的结构对比判断闰年——Javahttps://blog.youkuaiyun.com/Pniubi/article/details/145968036?spm=1001.2014.3001.5501

编写Java程序:通过使用switch语句,实现从键盘录入一个百分制成绩,输出一个五级制的成绩的需求。

思路:

1.划分等级,例如此处分ABCD五个等级(假设总分100分,每20分一个等级)

2.scanner录入

3.使用switch识别其对应的等级

4.输出


难点:switch语句(此处简单提及,后期详细详解)

1.基本语法结构

switch(表达式) 
{
    case 值1:
        // 代码块1
        break;
    case 值2:
        // 代码块2
        break;
    default:
        // 默认代码块
}

 2.case应该是按顺序吗

无强制顺序要求(eg  case1...case2...   ...) 

语法规范不限制case值的排列顺序

执行时仅进行值匹配,与case书写顺序无关

3.default的作用

在Java的switch语句中,default是最终的兜底处理分支,其作用类似于if-else结构中的else

4.case匹配逻辑解析

进行值匹配:例如下面代码中 grade等于几就是case几

int grade = (score+1)/20 ;
        switch (grade)
        {
            case 1:
                System.out.println("E");
                break;
            case 2:
                System.out.println("D");
                break;
            case 3:
                System.out.println("C");
                break;
            case 4:
                System.out.println("B");
                break;
            default:
                System.out.println("A");
        }

总结

 完整代码:

package Project01;


import java.util.Scanner;


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


        int grade = (score+1)/20 ;
        switch (grade)
        {
            case 1:
                System.out.println("E");
                break;
            case 2:
                System.out.println("D");
                break;
            case 3:
                System.out.println("C");
                break;
            case 4:
                System.out.println("B");
                break;
            default:
                System.out.println("A");
        }
    }
}

输出效果:

 


补充

与if-else对比

特性switchif-else
适用场景等值判断(离散值)范围判断、复杂条件
可读性多分支时更清晰分支多时嵌套难读
执行效率通过跳转表实现(O(1))顺序判断(O(n))
类型限制有限数据类型支持所有条件表达式

 

package Project01;

import java.util.Scanner;

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

        if (score > 100 || score < 0) 
        {
            System.out.println("无效成绩");
        } 
        else if (score >= 80) 
        {
            System.out.println("A");
        } 
        else if (score >= 60) 
        {
            System.out.println("B");
        } 
        else if (score >= 40) 
        {
            System.out.println("C");
        } 
        else if (score >= 20) 
        {
            System.out.println("D");
        } 
        else 
        {
            System.out.println("E");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pniubi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值