用switch语句实现将成绩由百分制转化成等级制

该Java程序从用户输入中获取分数,并根据分数范围将其转换为对应的评价等级(优秀、良好、中等、及格、不及格)。程序首先验证分数是否在0到100之间,然后使用switch语句进行等级划分。


import java.util.Scanner;

public class ScoreTransferSwitch
{
   public static void main(String[] args)
   {
       Scanner scanner=new Scanner(System.in);
       System.out.print("请输入分数(0——100):");
       int score=scanner.nextInt();
       int level=(int)score/10;
       if(score>100||score<0)
           System.out.print("你输入的成绩非法!");
       else
       {
           System.out.print("成绩为:");
           switch(level)
           {
           case 9:
           case 10:
               System.out.println("优秀");
                break;
           case  8:
               System.out.println("良好");
               break;
           case 7:
               System.out.println("中等");
               break;
           case 6:
               System.out.println("及格");
               break;
               default:
                   System.out.println("不及格");
           }
       }
   }
}
 

在C语言中,使用`switch`语句根据百分制成绩划分五个等级可以有多种实现方法,以下为你介绍几种常见的实现方式: #### 方法一:直接将成绩除以10作为`switch`的判断条件 ```c #include <stdio.h> int main() { int grade; printf("请输入成绩百分制):"); scanf("%d", &grade); switch(grade/10) { case 10: case 9: printf("A\n"); break; case 8: printf("B\n"); break; case 7: printf("C\n"); break; case 6: printf("D\n"); break; default: printf("E\n"); break; } return 0; } ``` 此方法直接将输入成绩除以10,然后根据结果进入`switch`语句的不同分支。当成绩为90 - 100时,`grade/10`为9或10,输出等级为A;80 - 89时,`grade/10`为8,输出等级为B,以此类推。若成绩小于60,进入`default`分支,输出等级为E [^1][^3]。 #### 方法二:先处理成绩,再用`switch`判断 ```c #include <stdio.h> int main() { int score; char grade; printf("请输入一个成绩:"); scanf("%d", &score); if (score == 100) { score = 90; } switch (score / 10) { case 9: grade = 'A'; break; case 8: case 7: grade = 'B'; break; case 6: grade = 'C'; break; default: grade = 'D'; } printf("score = %d\tgrade = %c\n", score, grade); return 0; } ``` 该方法先对输入成绩进行处理,若成绩为100分,将其视为90分。然后将成绩除以10,根据结果进入`switch`语句的不同分支,为`grade`变量赋值相应的等级,最后输出成绩和对应的等级 [^5]。 #### 方法三:利用逻辑判断结果作为`switch`的判断条件 ```c #include <stdio.h> #include <stdlib.h> int main() { int grade, rate; printf("所得成绩:"); scanf("%d", &grade); rate = (grade > 60) + (grade > 70) + (grade > 80) + (grade > 90); switch(rate) { case 0: printf("输出等级:E"); break; case 1: printf("输出等级:D"); break; case 2: printf("输出等级:C"); break; case 3: printf("输出等级:B"); break; default: printf("输出等级:A"); } return 0; } ``` 此方法通过多个逻辑判断计算出`rate`的值,`rate`的值表示成绩大于60、70、80、90的个数。然后根据`rate`的值进入`switch`语句的不同分支,输出对应的成绩等级 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值