新人才学java很多地方不懂。
import java.io.*;
public class Switch
{
public static void main(String []args)
{
try 
{
BufferedReader buff;
buff = new BufferedReader(new InputStreamReader(System.in));
//String str;
int num = Integer.parseInt(buff.readLine());
switch(num)
{
case  (num == 100) :
System.out.println("优秀");
break;
case  (num < 100 && num > 80) :
System.out.println("良好");
break;
case (num < 80 && num >60) :
System.out.println("及格");
break;
case (num > 0 && num < 60):
System.out.println("加油");
break;
default:
System.out.println("data error");
break;
}
}
catch(Exception e)
{
e.printStackTrace();
}

}
}

解决方案 »

  1.   

    case 只能写值,没有比较的
      

  2.   

    switch( exprl )中exprl是一个整数表达式  参数只能是byte,int,char,short类型,
    case  (num == 100)后面不是一个布尔表达式吗,所以不能直接这样;
    if(num=100) a=1;
    else if (num < 100 && num > 80)   a=2;
    else if  (num < 80 && num >60) : a=3;
    .........
    switch(a){
      case 1:System.out.println("优秀");
    case 2:System.out.println("良好");
    。。}
      

  3.   

    首先你对switch case 的表达式没有理解清楚:
    switch (num)  case(100) 相当于 if(num==100)
    所以如果想完成你的需求只能用if else
      

  4.   

    你可以改成这样就可以了switch(num/20){
      case 5:
        System.out.println("优秀");
        break;
      case 4:
        System.out.println("良好");
        break;
      case 3:
        System.out.println("及格");
        break;
      case 0:
      case 1:
      case 2:
        System.out.println("加油");
        break;
      default:
        System.out.println("data error");
        break;
    }
      

  5.   

    case后的东西就是范围。
      

  6.   

    用switch case  来表示范围不是很方便,switch case  适合那种结构简单明了,并且结果是 除了long类型的其他整数,你用if else来判断范围是比较方便的,就像你这题非要用switch  你可以通过除法运算把分数 除到一个小的整型变量,再通过switch来判断,
      

  7.   

    var iNum=92;
    switch (true) {
    case (iNum>90 && iNum<=100):
    document.write(++i +'.'+'甲'+"<br/>"); //输出 "甲"
    break;
    case (iNum>80 && iNum<=90):
    document.write(++i +'.'+"乙"+"<br/>"); //输出 "乙"
    break;
    case (iNum>70 && iNum<=80):
    document.write(++i +'.'+"丙"+"<br/>"); //输出 "丙"
    break;
    case (iNum>60 && iNum<=70):
    document.write(++i +'.'+"丁"+"<br/>"); //输出 "丁"
    break;
    default:
    document.write(++i +'.'+"戊"+"<br/>"); //输出 "戊"
    break;
    };
      

  8.   

    switch()后面只能跟int型,JDK5之后支持String型和枚举型你的(num==100)是布尔表达式,不能用在switch中
      

  9.   

    执行switch case语句时,会拿switch括号中的表达式依次与后面的case后的表达式进行比较,值相等时,执行后面的代码。而在你的代码中switch括号中的表达式是int型,而后面的case后的表达式是boolean值,不能进行比较。所以建议你使用if else-if 这种结构的代码处理判断取值范围这样的问题。
      

  10.   

    case 本身就是个条件。 他是输出的固定值。  上面都已经说了。 你看一下switch case的原理。 
      

  11.   

    score/10  剩下的就用case了