2013-10-22 69 views
-3

我得到了以下的問題:輸入姓名,年級,然後打印的姓名和分類等級

編寫提示用戶輸入的10名學生 及其成績的名字作爲一個字符串分隔的Java程序「」 。對於每個學生,打印出 他的名字和分類成績。 **注意:用於循環和開關。 **提示: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) 

下面是我的解決辦法: 「糾正我的錯誤後」 感謝helpe :)

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 
+1

你的問題是什麼,hanooee? –

+2

你的問題是你的switch語句只查找不同的值100,89,79,69。其他的都會得到一個f(應該是大寫的) – KeepCalmAndCarryOn

回答

1

像@KeepCalmAndCarryOn說,你的switch語句需要包括的範圍,而不僅僅是單個數字。從if/else的角度考慮,是否能夠幫助您重新定義您的交換機。