2017-09-27 102 views
0

我有一個家庭作業,應該驗證一些地址,如果他們適合長度方面的東西。但如果我嘗試輸入一些地址,我不能輸入第一個地址。我已經問過我的老師,如果她知道其中的錯誤是,但她不也知道我的數組的第一個輸入被跳過

public static void main(String[] args) { 
    System.out.println("How manny adresses do you want to test on length?"); 
    Scanner in = new Scanner(System.in); 
    int amount = in.nextInt(); 
    int x = 1; 
    String adressen[] = new String[amount]; 

    for(int i = 0; i < amount; i++) { 
     System.out.println("enter adress: " + x); 
     adressen[i] = in.nextLine(); 
     x++; 
    } 

    for(int i = 0; i < amount; i++) { 
     System.out.println(adressen[i]); 
    } 
} 
+0

和看着你命名。名字* x *什麼也不說。那麼,它清楚地表明,x完全不清楚。所以,好的雙關語。但嚴重:避免一個字符的名字。他們不幫你理解你的源代碼 – GhostCat

+0

作爲一個簡單的提示:'nextInt'不會清除'Scanner'內的令牌。這意味着從第一個輸入(在'nextInt'處完成),掃描儀內部仍然存在某些內容。因爲循環中的第一個'nextLine'調用將獲取第一個輸入的其餘部分,因此不會要求您輸入新的輸入。在開始循環之前,您需要清除第一個輸入。這可以通過多種方式完成,請參閱鏈接的重複問題。 – Zabuza

回答

0

在你的循環使用下一個()代替nextLine()

for(int i = 0; i < amount; i++) { 
    System.out.println("enter adress: " + x); 
    adressen[i] = in.next(); 
    x++; 
} 
相關問題