2016-11-08 61 views
0

我想創建一個程序,它需要一個名稱和一個時代,並將它們存儲在它們受尊敬的數組中。當程序運行時,它忽略了行:我的for循環不會重新運行in.nextLine的輸入?

personName[i] = in.nextLine();

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Scanner; 
public class Persons { 
    public static void main (String[] args){ 
    Scanner in = new Scanner(System.in); 
    String[] personName = new String[9]; 
    int[] personAge = new int[9]; 

    for(int i = 0; i < personName.length; i++){ 
     System.out.println("Please enter a name: "); 
     personName[i] = in.nextLine(); 
     if(!personName[i].equalsIgnoreCase("done")){ 
     System.out.println("Please enter an age: "); 
     personAge[i] = in.nextInt(); 
     } 
    } 
    } 
} 

任何想法?

+0

請添加您的語言標記下一次或([編輯](http://stackoverflow.com/posts/40487474/edit)) – Jim

+0

你在輸入作爲名稱? –

+0

@Thomas下面的答案可以回答你的問題嗎? – quantummind

回答

1

您試圖在不讀取整行的情況下讀取整數值。

更改您的線路:

personAge[i] = Integer.parseInt(in.nextLine()); 
+0

從'java.lang'中導入任何東西都是不必要的,除非包定義了它自己的'Integer'類。 –

+0

@RolandIllig是的,你是對的。這不是壞事。但這不是一個錯誤。無論如何,我編輯答案。 – quantummind