为了账号安全,请及时绑定邮箱和手机立即绑定

开关有问题

开关有问题

蓝山帝景 2021-09-12 10:47:29
目前正在努力理解我的错误消息的含义。我知道它不喜欢我从浮点数变为整数,但我该如何解决呢?import java.util.Scanner;public class gradeAverage {    public static void main (String [] args) {    Scanner sc = new Scanner(System.in);     System.out.println("First test score?");    float test1 = sc.nextInt();    System.out.println("Second test score?");    float test2 = sc.nextInt();    System.out.println("Third test score?");    float test3 = sc.nextInt();    float testAverage = (test1 + test2 + test3)/3;    System.out.println("Your test average is " + testAverage + ".");    switch(testAverage) {        case(97.5 <= testAverage <= 100):        System.out.println("Grade is an A+");        break;        case(93.5 <= testAverage <= 97.49):        System.out.println("Grade is an A");        break;        case(89.5 <= testAverage <= 93.49):        System.out.println("Grade is an A-");        default:        System.out.println("Grade is below an A-");    }    }}错误gradeAverage.java:13: error: incompatible types: possible lossy conversion from float to intswitch(testAverage) {          ^gradeAverage.java:14: error: bad operand types for binary operator '<='case(97.5 <= testAverage <= 100):                                 ^first type:  booleansecond type: int2 errors
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

  1. 开关盒中不能有范围。如果您有一个带有给定字符串或整数值的开关,则每种情况都会检查开关输入是否与一个值完全匹配。

  2. 对于案例 100,您应该将其写为 100.0 。如果您确实需要使用范围而不是单个值,请使用 if-elseif-else 子句。

  3. 在 switch 语句中的每个 case 之后,你需要break;一行来告诉代码离开 switch 语句,否则它将继续读取它们并执行里面的所有操作,不管它前面的 case 是否为真。


查看完整回答
反对 回复 2021-09-12
?
富国沪深

TA贡献1790条经验 获得超9个赞

在 java中的case语句中不能不使用表达式。switch 语句中使用的变量只能是整数、可转换整数(字节、短、字符)、字符串和枚举。考虑java 中switch-case语句的以下用例:


public class Test {


public static void main(String args[]) {

  // char grade = args[0].charAt(0);

  char grade = 'C';


  switch(grade) {

     case 'A' :

        System.out.println("Excellent!"); 

        break;

     case 'B' :

     case 'C' :

        System.out.println("Well done");

        break;

     case 'D' :

        System.out.println("You passed");

     case 'F' :

        System.out.println("Better try again");

        break;

     default :

        System.out.println("Invalid grade");

  }

  System.out.println("Your grade is " + grade);

  }

  }


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信