Java编程,switch语句,必须使用switch,不可以使用if???

要求
输入分数,给出相应等级:
1分数在90分以上,100以下,输出优秀
2分数在60-89输出,及格
3分数低于60,输出不及格

第1个回答  2013-09-18
这个场景不适合用swith。应该用if;

switch适合值相等(具体的值)的情况,不适合范围(大于、小于等)



switch语句的语法格式为:
switch(表达式){
case 值1:
功能代码1; 
[break; ]
case 值2:
功能代码2; 
[break; ]
……
default:
功能代码1; 
[break; ]
}
语法说明:
1、 表达式的类型只能为byte、short、char和int这4种之一。
2、 值1、值2…值n只能为常数或常量,不能为变量。
3、 功能代码部分可以写任意多句。
4、 break关键字的意思是中断,指结束switch语句,break语句为可选。
5、 case语句可以有任意多句,是标号语句。
6、 default语句可以写在switch语句中的任意位置,功能类似于if语句中的else。
执行流程:当表达式的值和对应case语句后的值相同时,既从该位置开始向下执行,一直执行到switch语句的结束,在执行中,如果遇到break语句,则结束switch语句的执行。

第2个回答  2013-09-18
    //if——else 
    public void test(int score){
        if(score<=100 && score >=90){
             System.out.println("优秀");       
         }else if(score>=60 && score<90 ){ 
             System.out.println("及格");         
         }else if(score>=0 && score<60){
             System.out.println("不及格"); 
         }else{
             System.out.println("分数错误!");     
         }     
    }
    //switch
    public void test(int score){
        int s = 0;
        if(score>=0 && score <=100){ 
           s = score/10;
        } else{ 
          System.out.println("分数错误!"); 
          return;           
        }
        switch(s){
              case 10:
              case 9:
                  System.out.println("优秀");
                  break;
              case 8:
              case 7:
              case 6:
                  System.out.println("及格");
                  break;
              default:
                  System.out.println("不及格");  
         }                      
    }

第3个回答  2013-09-18

都可以用。switch、if都是基本的语法之一,只是说有的时候switch看起来结构更清晰。但是switch也有很多局限性,比如不能对string 进行操作,但是好像1.7或1.8已经支持,我觉得看个人喜欢。

@上官元恒zsd  忘了加break了。

 

 int score = 80;
switch(score/10){
case 10:
case 9:    
    system.out.println("优秀");
    break;
case 8:
case 7:
case 6:
    system.out.println("及格");
    break;
default:
    system.out.println("不及格");

}

第4个回答  2013-09-18
import java.util.Scanner;
public class SwitchDemo {
/**
* @param args
*/
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请输入分数:");
Integer score = s.nextInt();
String level = null;
switch ((Integer) score / 10) {
case 10: // 满分的处理与 case 9: 相同
case 9:
level = "优秀";
break; // 90~99
case 8:
level = "良好";
break; // 80~89
case 7:
level = "中等";
break; // 70~79
case 6:
level = "及格";
break; // 60~69
default:
level = "不及格";
}
System.out.println(level);
}
}

可以用if
第5个回答  2013-09-18
可以用if.当case超过一定数量的话,用ifelse会把程序显得很臃肿。所以少量的话推荐if。较多的话推荐switch。
你说的这个if和switch都可以达到