-3

我遇到了以下问题:

编写一个 Java 程序,提示用户输入 10 个学生的姓名和他们的成绩,作为一个字符串,用“,”分隔。对于每个学生,打印出他的姓名和分类等级。**注意:使用 for 循环和 switch。**提示:A (90-100)、B (80-89)、C (70-79)、D (60-69)

     Sample Run:

     Student1: Sara Alhazmi,88
     Output:
     Sara Alhazmi : B

     Student2: Nada Alamri,95
     Output:
    Nada Alamri : A

 (**Repeated 10 times)

以下是我的解决方案:“纠正我的错误后”感谢您的帮助:)

  import java.util.*;
   public class students{
   public static void main(String args[])
  { Scanner input = new Scanner (System.in);
        int f = 10;
        for (int i = 1; i <= f; i++)
    { System.out.println("Student" + i + ":");
     String s = input.nextLine();//s=name student and 
     String name = s.substring(0, s.indexOf(","));//name student 
     String sgrade = s.substring(s.indexOf(",")+1);//grad student
    double grade = Double.parseDouble(sgrade) / 10;// I can not use string with loop so I convert to double because I Divided 
      int ingrade = (int)Math.round(grade); // then I convert to integer 
       switch (ingrade) {
        case 10: 
         System.out.println(name + ": A");
        break;
         case 9:
        System.out.println(name + ": A");
            break;
         case 8: 
       System.out.println(name + ": B"); 
         break;
         case 7: 
     System.out.println(name + ": C");
        break;
         case 6:
       System.out.println(name + ": D");
          break; 

   }//end  while loop
  }//end for loop
 }// end main
 }// end class
4

1 回答 1

1

就像@KeepCalmAndCarryOn 所说,您的 switch 语句需要包含范围,而不仅仅是单个数字。根据 if/else if 来考虑它,这将帮助您重新定义您的开关。

于 2013-10-22T00:06:36.007 回答