微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这不是家庭作业,但老师给我们帮助学习考试是一种做法.但我不会把它转交给老师. (我希望这是允许的)

他希望用户输入成绩并为其分配一个字母等级. 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.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐