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