import java.util.Random;
public class Example0306
{public static void main(String [] args)
  {Random random=new Random();
  float x=random.nextFloat();
  System.out.println("x="+x);
  int score=Math.round(50*x+50);
  System.out.println("your test score was =" +score);
  switch(score)
  {
 
   case 100:
   System.out.println("You are Robben");
   case 90:
   System.out.println("you have got 90");
   case 80:
   System.out.println("80");
   case 70:
   System.out.println("70");
   case 60:
   System.out.println("60");
   case 50:
   System.out.println("50");
       
}
}
}
程序只会打印出Switch语句之前的部分,难道是Switch语句错了?

解决方案 »

  1.   

    score不一定是你switch中列出的值
    所以没执行打印出相应的语句
    另外你的switch没有用break,似乎不是个好习惯
      

  2.   

    你的数是随机数,一直取前面的数很正常撒,同楼上说的switch语句没用break不知道你的用意
      

  3.   

    import java.util.Random; 
    public class Example0306 {
    public static void main(String [] args) {
    Random random=new Random(); 
       float x=random.nextFloat(); 
       System.out.println("x="+x); 
       int score=Math.round(50*x+50); 
       System.out.println("your test score was =" +score); 
       switch(score) { 
       case 100:
       System.out.println("You are Robben"); 
       break;
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
       System.out.println("you have got 90"); 
       break;
       case 89:
       case 88:
       case 87:
       case 86:
    case 85:     
    case 84:     
    case 83:     
    case 82:     
    case 81:     
    case 80:     
      System.out.println("80"); 
      break;
       



    我猜是这个意思