这是否符合 switch 语句的条件?
Is this qualified as a switch statement?
我必须将其用作 switch 语句。这是一个 switch 语句,对吧?
if (dGrade > 93.99) {strFGrade= strA;} //A= above 94
else if (dGrade >= 90.00 && dGrade <= 93.99 ) {strFGrade= strLA;} //A- = 90-93.99
else if (dGrade >= 87.70 && dGrade <= 89.99) {strFGrade= strHB;} //B+= 87.7-89.99
else if (dGrade >= 83.33 && dGrade <= 87.69) {strFGrade= strB;} //B= 83.33-87.69
else if (dGrade >= 80.00 && dGrade <= 83.32 ) {strFGrade= strLB;} //B- = 80-83.32
else if (dGrade >= 75.00 && dGrade <= 79.99 ) {strFGrade= strHC;} //C+= 75-79.99
else if (dGrade >= 70.00 && dGrade <= 74.99 ) {strFGrade= strC;} //C= 70-74.99
else if (dGrade >= 60.00 && dGrade <= 69.99 ) {strFGrade= strD;} //D=60-69.99
else {strFGrade= strF;} //F= below 60
这不是 switch 语句。 Switch 语句具有以下结构:
switch (dgrade) {
case 90:
doSomething();
break;
case 100:
doSomethingElse();
break;
default:
do();
}
在你的情况下,你实际上不能使用 switch 语句,因为你有条件,所以你只能使用 if-else
语句
不,无法使用 switch 语句测试值是否位于这样的区间内。 switch 语句对于一种类型的每个单独值都有一个分支,如果打开的值 等于 等于分支的值,则采用该分支。
也就是说,可以像这样以更紧凑的方式编写代码:
if (dGrade >= 94.00) strFGrade = strA;
else if (dGrade >= 90.00) strFGrade = strLA;
else if (dGrade >= 87.70) strFGrade = strHB;
else if (dGrade >= 83.33) strFGrade = strB;
else if (dGrade >= 80.00) strFGrade = strLB;
else if (dGrade >= 75.00) strFGrade = strHC;
else if (dGrade >= 70.00) strFGrade = strC;
else if (dGrade >= 60.00) strFGrade = strD;
else strFGrade = strF;
这里的诀窍是您可以省略一半的测试,因为您已经在较早的 if 语句中测试了它。这没有考虑到值可能位于 之间 原始代码中两个不同间隔的限制。
块({
和 }
)在这里也不是必需的。
并注意常规的白色 space 用法,在 =
的两边加上 space。
我必须将其用作 switch 语句。这是一个 switch 语句,对吧?
if (dGrade > 93.99) {strFGrade= strA;} //A= above 94
else if (dGrade >= 90.00 && dGrade <= 93.99 ) {strFGrade= strLA;} //A- = 90-93.99
else if (dGrade >= 87.70 && dGrade <= 89.99) {strFGrade= strHB;} //B+= 87.7-89.99
else if (dGrade >= 83.33 && dGrade <= 87.69) {strFGrade= strB;} //B= 83.33-87.69
else if (dGrade >= 80.00 && dGrade <= 83.32 ) {strFGrade= strLB;} //B- = 80-83.32
else if (dGrade >= 75.00 && dGrade <= 79.99 ) {strFGrade= strHC;} //C+= 75-79.99
else if (dGrade >= 70.00 && dGrade <= 74.99 ) {strFGrade= strC;} //C= 70-74.99
else if (dGrade >= 60.00 && dGrade <= 69.99 ) {strFGrade= strD;} //D=60-69.99
else {strFGrade= strF;} //F= below 60
这不是 switch 语句。 Switch 语句具有以下结构:
switch (dgrade) {
case 90:
doSomething();
break;
case 100:
doSomethingElse();
break;
default:
do();
}
在你的情况下,你实际上不能使用 switch 语句,因为你有条件,所以你只能使用 if-else
语句
不,无法使用 switch 语句测试值是否位于这样的区间内。 switch 语句对于一种类型的每个单独值都有一个分支,如果打开的值 等于 等于分支的值,则采用该分支。
也就是说,可以像这样以更紧凑的方式编写代码:
if (dGrade >= 94.00) strFGrade = strA;
else if (dGrade >= 90.00) strFGrade = strLA;
else if (dGrade >= 87.70) strFGrade = strHB;
else if (dGrade >= 83.33) strFGrade = strB;
else if (dGrade >= 80.00) strFGrade = strLB;
else if (dGrade >= 75.00) strFGrade = strHC;
else if (dGrade >= 70.00) strFGrade = strC;
else if (dGrade >= 60.00) strFGrade = strD;
else strFGrade = strF;
这里的诀窍是您可以省略一半的测试,因为您已经在较早的 if 语句中测试了它。这没有考虑到值可能位于 之间 原始代码中两个不同间隔的限制。
块({
和 }
)在这里也不是必需的。
并注意常规的白色 space 用法,在 =
的两边加上 space。