在开关如何使用逻辑运算符的情况下JAVA
问题描述:
我有一个问题,我不知道怎么把案例部分,当用户输入他们的成绩从0-100有输出对应于他们的成绩失败,好,verygood ,优秀。在开关如何使用逻辑运算符的情况下JAVA
import java.util.Scanner;
public class ProgTestI {
public static void main (String args[]){
Scanner pao = new Scanner(System.in);
System.out.print("Grades: ");
String grades = pao.next();
int grado = Integer.parseInt(grades);
switch (grado){
case =<74: /* iwant to put 0 to 74*/
System.out.println("Failed");
case : /* 75-80*/
System.out.println("bellow average");
case : /*81-85*/
System.out.println("average");
case : /*86-90*/
System.out.println("Good");
case : /*91-96*/
System.out.println("VeryGood");
default:
}
}
}
答
您不能使用开关范围,您需要用适当的if/else块代替这段代码。 交换机只适用于数值,但它的工作原理是
if(numericVal == 40)
所以写它的范围是...的代码浪费,无法读取。
你需要重写一遍:
if(g <= 74){
...
}else if(g > 74 && g <= 80){
...
答
你的情况下,代码不正确,你可以做脚气提及。
如果你想实现你的应用程序switch语句,那么你可以做如下:
public static void main(String[] args) {
Scanner pao = new Scanner(System.in);
System.out.print("Grades: ");
String grades = pao.next();
int grado = Integer.parseInt(grades);
int checkedCase=0;
if(grado<=74){
checkedCase=1;
}
else if(grado>=75&&grado<=80){
checkedCase=2;
}
else if(grado>=81&&grado<=85){
checkedCase=3;
}
else if(grado>=86&&grado<=90){
checkedCase=4;
}
else if(grado>=91&&grado<=96){
checkedCase=5;
}
switch (checkedCase){
case 1: /* iwant to put 0 to 74*/
System.out.println("Failed");
break;
case 2: /* 75-80*/
System.out.println("bellow average");
break;
case 3: /*81-85*/
System.out.println("average");
break;
case 4: /*86-90*/
System.out.println("Good");
break;
case 5: /*91-96*/
System.out.println("VeryGood");
break;
default: System.out.println("Please enter a value in range 0-96");
break;
}
}
你不能'之开关的范围,所以无论是'如果-else'或'Map'或类似的。 – Smutje 2014-11-25 08:24:39
对不起,你不能这样做。 'switch'只适用于具体的值。 – 2014-11-25 08:25:33
可能的重复[在Java中,在每种情况下使用switch语句的值范围?](http://stackoverflow.com/questions/10873590/in-java-using-switch-statement-with-a-range-每种情况下的值) – Jens 2014-11-25 08:25:37