2015-09-05 74 views
1

我想做一個簡單的Java程序,基本上我正在採取一些用戶輸入值,並打印出一個整齊有序的輸出。這全部在控制檯中。但是,當我繼續增加更多的投入時,該計劃就不會讓我接受投入。這裏是我的代碼:Java簡單的程序,不允許用戶輸入

import java.util.*; 

public class output { 
    public static void main(String arg[]) { 

     //================================================================================ 
     // Level 1 Start 
     //================================================================================ 
     Scanner input = new Scanner(System.in); 

     //Start asking the user questions and store the values 
     System.out.println("Hello! What is your name?"); 
     String name = input.nextLine(); 
     System.out.println("Hello " + name + "! Nice to meet you!"); 

     //================================================================================ 
     // Level 1 End 
     //================================================================================ 


     //================================================================================ 
     // Level 2 Start 
     //================================================================================ 
     System.out.println("How old are you?"); 
     String age = input.nextLine(); 

     System.out.println("Are you male or female?"); 
     String gender = input.nextLine(); 

     System.out.println("How much do you weigh?"); 
     int weight = input.nextInt(); 

     System.out.println("Are you a student? (true/false)"); 
     boolean isAStudent = input.nextBoolean(); 

     //Add a space 
     System.out.println("\n"); 

     //Display the user's data neatly 
     System.out.println("Name: " + name); 
     System.out.println("Age: " + age); 
     System.out.println("Gender: " + gender); 
     System.out.println("Weight: " + weight); 

     //check to see if the user is a student and print it out 
     if(isAStudent) { 
      System.out.println("Student?: Yes");   
     } else { 
      System.out.println("Student?: No"); 
     } 

     //================================================================================ 
     // Level 2 End 
     //================================================================================ 

     //================================================================================ 
     // Level 3 Start 
     //================================================================================ 

     System.out.println("\n"); 

     //display hello world a bunch of times 
     for(int i = 0; i < 5; i++){ 
      System.out.println("Hello Hello Hello Hello Hello Hello"); 
     } 

     System.out.println("\n"); 

     System.out.println("Tell me a quote"); 
     String quote = input.nextLine(); 

     System.out.print(quote);  

     //================================================================================ 
     // Level 3 End 
     //================================================================================ 

    } 
} 

我知道我不應該把代碼大塊的計算器,但我覺得其他部分可能導致的解決方案。所以我的問題是,當我到達3級(檢查評論)和打印聲明「告訴我一個報價」時,我無法接受輸入。所以對於String引用的輸入就好像我輸入了回車鍵,即使我沒有輸入。所以,在我甚至能夠輸入任何東西之前它已經取得了價值。請幫助我...如果您需要更多解釋,請告訴我。

回答

1

在此之後,

boolean isAStudent = input.nextBoolean(); 

換行符保持在緩衝器中。你應該擺脫它:

boolean isAStudent = input.nextBoolean(); 
input.nextLine();