加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用switch()语句将数字转换为字母等级?

发布时间:2020-12-15 00:37:56 所属栏目:Java 来源:网络整理
导读:这不是家庭作业,但老师给我们帮助学习考试是一种做法.但我不会把它转交给老师. (我希望这是允许的) 他希望用户输入成绩并为其分配一个字母等级. if语句很容易,但我不能使用任何东西!我必须使用切换方法. 这是我的功能类: public class Grade {public doubl
这不是家庭作业,但老师给我们帮助学习考试是一种做法.但我不会把它转交给老师. (我希望这是允许的)

他希望用户输入成绩并为其分配一个字母等级. if语句很容易,但我不能使用任何东西!我必须使用切换方法.

这是我的功能类:

public class Grade {

public double getGrade(int input)
 {
  double inputGrade;
  switch(input)
  {
   case 1: inputGrade >= 90;
       break;
   case 2: inputGrade >= 80;
       break;
   case 3: inputGrade >= 70;
       break;
   default:
       grade = 60;
  }
  return grade;

 }

}

这是我的测试类:

import java.util.*;
public class TestGrade
{
 public static void main(String[] args)
 {
  Scanner scan = new Scanner(System.in);
  int input = scan.nextInt();
  Grade lGrade = new Grade();
  double finalGrade = lGrade.getGradeSwitch(input);
  System.out.println("Your toll is $" + finalGrade);
 }

}

我只是没有足够的编程来拥有这种分析思维.我试图完成它,我只是没有找到一种方法将用户输入(int)转换为没有if语句的字母等级(字符串).

我知道这是不完整的,但这是我可以走的,不会出错.

编辑:哇!谢谢大家,我讨厌选择一个正确答案,因为很多人帮助了我!

这就是我最终的结果(有效:D)

public String getGrade(int input)
{
    String letterGrade;
    switch(input/10)
    {
        case 9: letterGrade = "A";
                  break;
        case 8: letterGrade = "B";
                  break;
        case 7: letterGrade = "C";
                  break;
        case 6: letterGrade = "D";
        default:
                  letterGrade = "F";
    }
    return letterGrade;

}

解决方法

好吧,我的假设是你将输入0-100的数字等级,并且你想要的字母等级为“90-100:A; 80-89:B; ……; 60-69:D; 0- 59:F“.

如果不是这样,那么您在编程方面的第一课就是:编码中最重要的部分是清楚地写出规范和要求

话虽如此,有聪明而愚蠢的方法.

>愚蠢的方法:

>像现在一样使用“输入”上的开关
>由于值90,91 … 100都应该被视为相同,所以将它们全部放在单独的开关盒中,但只在最后一个中进行工作(称为直通; see SwitchDemo2 on this page for how that works)
>对于最后一个值(例如,如果从100开始并且向下,则为90),switch语句将为letterGrade =“A”;打破;
>一旦达到89的情况,你就会重复与100到90相同的逻辑
>泡沫,冲洗,重复,直到60
>将Fs作为默认情况处理.

这将是非常长的,相当愚蠢(如蛮力)和非常讨厌的写作,以及一个出色的教学工具,为什么你再也不想写愚蠢的代码,如果你能帮助它.

>更优雅的解决方案(在此插入适当的星球大战报价)

>你对“A”的所有相关人员之间的共同点是什么?

是的,事实是,除了100之外,它们都是以9开头的2-diit#.

因此,要在1个案例陈述中处理它们,那么为90和99之间的所有#s打开一些给你“9”的值不是很好吗?

我希望你马上知道答案…提示下面……

是的,只需将整数除以10!

因此,您需要将您的数字等级转换为10,
包含10,9,8,7,6的情况以及默认映射到F.

希望这能够为您提供足够的工作解决方案,同时展示分析如何运作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读