Java 如何将if语句转换为switch语句

Java 如何将if语句转换为switch语句,java,Java,我的代码应该将分数转换为字母分数,所以我使用了if语句。只是想知道是否有一种方法可以使用switch语句而不是if语句。我不知道如何转换它。还有,一个比另一个好吗 public static void determineGrade(int numArray[], char letterArray[]) { int scoreCount = numArray.length; for (int i=0; i < scoreCount; i++) { if

我的代码应该将分数转换为字母分数,所以我使用了if语句。只是想知道是否有一种方法可以使用switch语句而不是if语句。我不知道如何转换它。还有,一个比另一个好吗

   public static void determineGrade(int numArray[], char letterArray[]) {

   int scoreCount = numArray.length;

   for (int i=0; i < scoreCount; i++) {

        if (numArray[i] >= 90 && numArray[i] <=100) {
            letterArray[i] = 'A';
        }           
        if (numArray[i] >= 80 && numArray[i] < 90) {
            letterArray[i] = 'B';

        }
        if (numArray[i] >= 70 && numArray[i] < 80) {
            letterArray[i] = 'C';

        }
        if (numArray[i] >= 60 && numArray[i] < 70) {
            letterArray[i] = 'D';

        }
        if (numArray[i] >= 0 && numArray[i] < 60) {
            letterArray[i] = 'F';
        }
  }
   displayTestScores(numArray, letterArray);
public静态void determinategrade(int numArray[],char letterArray[]{
int scoreCount=numArray.length;
对于(int i=0;i=90&&努马拉[i]=80&&努马拉[i]<90){
字母数组[i]=“B”;
}
如果(努马拉[i]>=70&&努马拉[i]<80){
字母数组[i]=“C”;
}
如果(努马拉[i]>=60&&努马拉[i]<70){
字母数组[i]=“D”;
}
if(numArray[i]>=0&&numArray[i]<60){
字母数组[i]=“F”;
}
}
displayTestScores(numArray、letterArray);

您希望生成一个switch语句,该语句包含基于范围的案例。这并不是switch语句的真正目的。if路由更优雅/更适合您的案例


您的条件是范围。Java
switch
语句的大小写是值,而不是范围

由于案例数量有限,您可以单独列出每一个案例。但是,这会使您的代码更长,有100个案例

还有一些数学技巧,你可以找到可以被10整除的较小数字,然后打开它。但是
if
语句更容易实现和阅读

综上所述,如果使用
else
语句,而不是独立的
if
,那么
if
语句中的第二个表达式是不必要的,并且您希望使用
else
,因为在满足第一个条件后继续检查所有剩余的情况是愚蠢的

    if (numArray[i] >= 90 ) {  // Can you have values > 100?
        letterArray[i] = 'A';
    }           
    else if (numArray[i] >= 80 ) {  // If we're checking this, we know numArray[i] < 90
        letterArray[i] = 'B';
    }
    else if ... 
如果(numaray[i]>=90){//你能有大于100的值吗?
字母数组[i]=“A”;
}           
否则如果(numaray[i]>=80){//如果我们检查这个,我们知道numaray[i]<90
字母数组[i]=“B”;
}
否则如果。。。
然后

for(int i=0;i
在这种情况下,您可以切换语句,但我不建议这样做,因为您将有太多的案例。由于if语句的条件,您将使用至少100个案例进行输入

case 100 ://code
    break;
case 50 ://skip a bit
case 0 :

案例太多,浪费时间和线路。

这很好,很简单。回答得好。
for (int i=0; i < scoreCount; i++) {
    letterArray[i] = getGrade(numArray[i]);
}
case 100 ://code
    break;
case 50 ://skip a bit
case 0 :