2015-09-01 21 views
-1

我還是新手編程,一直在努力學習如何解決此代碼 即時通訊嘗試輸入和記錄用戶名和密碼取決於我輸入的用戶數量,但是當我運行它打印出「你的用戶名是什麼?」問題兩次之前,我被允許給予迴應。我已經收窄的問題給用戶[I] = in.nextLine()部分雙打印之前允許迴應

public static void main(String[] args){ 

    System.out.println("How many Users?"); 
    Scanner in = new Scanner(System.in); 

    int x = in.nextInt(); 
    String[] user; 
    user = new String[x]; 
    String[] pass; 
    pass = new String[x]; 

    for(int i=0; i<x;i++){ 
     System.out.println("What is your Username?"); 
     user[i] = in.nextLine(); 
+0

它讓你輸入x個用戶名還是隻能輸入x-1個用戶? –

回答

2

添加in.nextLine();int x = in.nextInt();後消費,而忽略通過調用遺留下來的新行字符nextInt()

0

當您使用掃描儀時,它僅消耗所需令牌所需的字節。

如果首先調用的是讓用戶(nextInt)的數量讀取組成它數字只有最小數量和離開\n(新行字符)不消耗它

因爲您要求循環中的下一行,所以第一行只使用\ n。

所以最好的解決方案,使你的代碼正確的是for循環之前添加

in.nextLine();