2017-02-18 52 views
0

我正在編寫一個程序來打印出學生的名字和他們的成績。如果我只輸入他們的名字,並且當我輸入他們的最後一個名字時出現錯誤,它將起作用。我想知道我是否忽略了String名稱。我有一個問題輸入姓氏到輸入

package project_2; 

import java.util.Scanner; 

public class Project_2 { 
    public static void main(String[] args) { 
     Scanner input=new Scanner(System.in); 
     System.out.print("Enter your name: "); 
     String name = input.next(); 
     System.out.print("Enter Grade: \t"); 
     double Grade = input.nextDouble(); 
     if(Grade>=88) 
      System.out.println(name + "You have an A!"); 
     else if (Grade<=87 && Grade>=80) 
      System.out.println(name + "You have a B!"); 
     else if (Grade<=79 && Grade>=67) 
      System.out.println(name + "You have a C!"); 
     else if (Grade<=66 && Grade>=60) 
      System.out.println(name + "You have a D!"); 
     else 
      System.out.println(name + "You have a F!"); 
    } 
} 
+1

use'nextLine()' –

+1

歡迎來到Stack Overflow!請參考[遊覽](http://stackoverflow.com/tour),環顧四周,閱讀[幫助中心](http://stackoverflow.com/help),特別是[我該如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)和[我可以問什麼問題?](http://stackoverflow.com/help/on-topic)。 - 請始終添加您獲得的* complete *錯誤消息。 –

+1

歡迎來到堆棧溢出!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然有問題,請隨時返回更多詳情。 –

回答

0

只是這樣做:

Scanner input = new Scanner(System.in); 
System.out.print("Enter your name: "); 
String name = input.nextLine(); 
System.out.print("Enter Grade: \t"); 

那麼你可以採取全名。

輸出:

Enter your name: Jack Davidson 
Enter Grade: 88 

請注意,使用next()只會返回一個空間之前會發生什麼。返回當前行後,nextLine()自動移動掃描儀。