java中switch case怎么表示范围

PointerFinger 2014-04-01 06:48:57
新人才学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();
}

}
}
...全文
21566 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
肃穆丶 2016-10-18
  • 打赏
  • 举报
回复
score/10 剩下的就用case了
yiliang1990 2016-10-18
  • 打赏
  • 举报
回复 1
case 本身就是个条件。 他是输出的固定值。 上面都已经说了。 你看一下switch case的原理。
sky_08_06_02 2016-10-18
  • 打赏
  • 举报
回复
zc694623467 2016-10-17
  • 打赏
  • 举报
回复 1
执行switch case语句时,会拿switch括号中的表达式依次与后面的case后的表达式进行比较,值相等时,执行后面的代码。而在你的代码中switch括号中的表达式是int型,而后面的case后的表达式是boolean值,不能进行比较。所以建议你使用if else-if 这种结构的代码处理判断取值范围这样的问题。
大玉莞尔 2016-10-17
  • 打赏
  • 举报
回复
switch()后面只能跟int型,JDK5之后支持String型和枚举型 你的(num==100)是布尔表达式,不能用在switch中
hysen31 2016-10-15
  • 打赏
  • 举报
回复
引用 8 楼 Aaronye87256 的回复:
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; };
这是个什么写法。。。
Aaronye87256 2016-04-30
  • 打赏
  • 举报
回复
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; };
fruitlin 2014-04-04
  • 打赏
  • 举报
回复
用switch case 来表示范围不是很方便,switch case 适合那种结构简单明了,并且结果是 除了long类型的其他整数,你用if else来判断范围是比较方便的,就像你这题非要用switch 你可以通过除法运算把分数 除到一个小的整型变量,再通过switch来判断,
  • 打赏
  • 举报
回复
case后的东西就是范围。
rumlee 2014-04-02
  • 打赏
  • 举报
回复
你可以改成这样就可以了 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; }
wangcheng1983913 2014-04-02
  • 打赏
  • 举报
回复
首先你对switch case 的表达式没有理解清楚: switch (num) case(100) 相当于 if(num==100) 所以如果想完成你的需求只能用if else
u012128266 2014-04-01
  • 打赏
  • 举报
回复
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("良好"); 。。。。。 }
teemai 2014-04-01
  • 打赏
  • 举报
回复
你可以用if
teemai 2014-04-01
  • 打赏
  • 举报
回复
case 只能写值,没有比较的

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧