java - 在Java中使用switch case作为条件语句

标签 java switch-statement conditional-statements

我正在尝试使用 switch case 来根据变量选择条件, 但我收到错误。这样做的正确过程是什么?是否可以使用 switch case,或者我应该使用嵌套 iff?

public class Grader {
   // no attributes required
    public Grader() {
// no code required
}


public String grade(int mark) {
    String grade = null;
// code to determine grade goes here
    switch (mark){
        //For marks 85-100, Grade is HD
        case ((100>=mark>=85)):
            grade="HD";
            break;
        //For marks 75-84, Grade is D
        case (mark>=75 && mark<=84):
            grade="D";
            break;
        //For marks 65-74, Grade is C
        case (mark>=65 && mark<=74):
            grade="C";
            break;
        //For marks 50-64, Grade is P
        case (mark>=50 && mark<=64):
            grade="P";
            break;
        //For marks 49-0, Grade is HD
        case (mark<=49 && mark>=0):
            grade="F";
            break;






    }
    return grade;
}
public boolean pass(int mark) {
    boolean pass = false;
// code to determine pass goes here

    return pass;
    } 
}

最佳答案

Switch 在其情况下仅采用常量值。您无法在计算运行时间的情况下添加表达式。

这里最好的方法是使用传统的 if-else-if

 public String grade(int mark) {
        String grade = null;
        // code to determine grade goes here
        if (mark >= 100 && mark <= 85) {
            grade = "HD";
        } else if (mark >= 75 && mark <= 84) {
            grade = "D";
        } else if (mark >= 65 && mark <= 74) {
            grade = "C";
        } else if (mark >= 50 && mark <= 64) {
            grade = "P";
        } else if (mark <= 49 && mark >= 0) {
            grade = "F";
        } else {
            grade = "Not found";
        }
        return grade;
    }

关于java - 在Java中使用switch case作为条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43337778/

相关文章:

java - 一次显示 String 和 Int 数组

Java:使用 POI/HWPF 解析 ms-word 文档

Haskell - "How can I use "if”语句在 "do" block 中正确吗?

Java/Proguard : Find out why jar does not Validate/Verify?

java - long 和 double 赋值不是原子的——这有什么关系?

java - 在 JNI 中打开枚举?

javascript for...in + if-test(在表单内的开关内部)

objective-c - While 循环与 Objective-C 中的嵌套开关

c# - boolean 表达式的速度(C#)

ipad - iOS - 条件编译(xcode)