2014-01-20 65 views
0

它不允許我輸入我的選擇,不管我是否想輸入另一個年級,它應該允許我輸入是或否的選擇,如果我輸入yes應該讓我進入另一個年級,除非它只是拒絕接受用戶輸入?爲什麼這段代碼無法正常工作(基本)

import java.util.Scanner; 

public class ExaminationGrades { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner (System.in); 
     double grade; 
     String ch; 

     do { 
      System.out.println("Enter your grade: "); 
      grade = scan.nextDouble(); 

      if (grade <40) { 
       System.out.println("you failed"); 
      } else if (grade >=40 && grade <50) { 
       System.out.println("Pass"); 
      } else if (grade >=50 && grade <60) { 
       System.out.println("2:2"); 
      } else if (grade >=60 && grade <70){ 
       System.out.println("2:1"); 
      } else if (grade >=70 && grade <=100){ 
       System.out.println("1:1"); 
      } else 
       System.out.println("invalid entry"); 

      System.out.println("Would you like to enter another?"); 
      ch = scan.nextLine(); 

     } while(ch =="no"); 

     scan.close(); 
    } 

} 
+0

什麼?這不是重複的 – user3204699

+0

你讀過了嗎?它回答你的問題。 – Doorknob

+0

是的! 'while(ch ==「no」);' –

回答

0

變化

while(ch =="no"); 

while(ch.equals("yes")) 

編輯

public static void main(String[] args) { 
    Scanner scan = new Scanner (System.in); 
    double grade; 
    String ch; 

    do { 
     System.out.println("Enter your grade: "); 
     grade = scan.nextDouble(); 
     scan.nextLine(); //Consume the newline character generated by hitting enter 

     if (grade <40) { 
      System.out.println("you failed"); 
     }else if (grade >=40 && grade <50) { 
      System.out.println("Pass"); 
     }else if (grade >=50 && grade <60) { 
      System.out.println("2:2"); 
     }else if (grade >=60 && grade <70){ 
      System.out.println("2:1"); 
     }else if (grade >=70 && grade <=100){ 
      System.out.println("1:1"); 
     }else 
      System.out.println("invalid entry"); 

     System.out.println("Would you like to enter another?"); 
     ch = scan.nextLine(); 

    }while(ch.equals("yes")); //Correctly compare strings 

    scan.close(); 
} 
+0

它仍然不允許我輸入用戶輸入,我不能輸入yes或不,它只是凍結在「你想進入另一個嗎?」 – user3204699

+0

你的'scan.nextDouble'不會消耗換行符,所以你需要在'scan.nextDouble()'後面加上'scan.nextLine()'。給我一分鐘,我會把整個代碼的例子。 – csmckelvey

+0

@ user3204699這對我來說運行得很好,讓我知道會發生什麼 – csmckelvey

相關問題