java编程 switch语句

根据考试成绩的等级打印出分数段,优秀为90分以上,良好为80~90,中等为70~79,及格为60~69,不及格为60分一下,采用switch;比如grade为优秀时输出 优秀:90分以上

switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以是因为byte,short,shar可以自动提升(自动类型转换)为int,不是说就可以放它们,说白了,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),其实最后放的还是int类型!long不行,是因为long类型不能自动转换为int类型,注意,我说的是自动转换,或者叫隐式转换,或者有些时候叫自动提升,都是一个意思!给你解释一下原理:Java中8种基本数据类型,boolean类型不参与转换,任何类型不能转换为boolean型,boolean也不能转换为其他类型,所以剩下7种,按照他们的表数范围,(也就是能表示的最大的数的大小,比如char是0到65535,byte是-128到正127)从小到大,排序,依次为:byte、short、char、int、long、float、double规则:

  1.小的往大的转换(宽化),自动转换,有些时候就会自动提升为大的类型,比如switch中

  2.大的往小的转换(窄化)必须强制类型转换所以long不行,要想行就得强转如(int)long

  switch后面括号中只能探测到int类型数,同理,float、double也是不行的,要想行就强转。
如果你要用switch来写程序.我写了一段你参考下

package Test;

import java.util.Scanner;

public class Test{
public static void main(String[] args){

int level=0;//分数等级
System.out.print("请输入考试分数:");
Scanner input=new Scanner(System.in);
int score=input.nextInt();//得到输入分数
//根据分数划分等级
if(score>90){
level=1;
}else if(score<=90&&score>=80){
level=2;
}else if(score>=70&&score<80){
level=3;
}else if(score>=60&&score<70){
level=4;
}else {
level=5;
}
String message="考试分数:"+score+" 等级:";

//用switch来打印
switch(level){
case 1:
System.out.println(message+"优秀");
break;
case 2:
System.out.println(message+"良好");
break;
case 3:
System.out.println(message+"中等");
break;
case 4:
System.out.println(message+"及格");
break;
case 5:
System.out.println(message+"不及格");
break;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-28
1楼,2楼的都错了啊~~~
1楼如果输入成绩为100分则将输出“不及格”。。。
2楼的不知所云啊

public class SwithCase {

public static void main(String[] args) {
int grade = 100;
if(grade <= 100 && grade >=0){
switch (grade / 10) {
case 10:
System.out.println("优秀:90分以上");
break;
case 9:
System.out.println("优秀:90分以上");
break;
case 8:
System.out.println("良好:80~90");
break;
case 7:
System.out.println("中等:70~79");
break;
case 6:
System.out.println("及格:60~69");
break;
default:
System.out.println("不及格:60分以下");
}
}else{
System.out.println("输入有误!分数应该在0 ~ 100 之间");
}
}
}
第2个回答  2011-09-28
public class Du01 {

public static void main(String[] args) {

int grade = 80;

switch(grade / 10){
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
break;
}

}

}本回答被网友采纳
第3个回答  2011-09-28
swithch ( grade ) {
case:1 System.out.println("优秀");break;
case:2 System.out.println("良好");break;
case:3 System.out.println("中等");break;
case:4 System.out.println("及格");break;
case:5 System.out.println("不及格");break;
}
第4个回答  2011-09-28
同意以上
相似回答