我在类

时间:2016-03-31 19:08:45

标签: java object arraylist

我遇到了一些问题,当我在类中添加一个int属性时,下面的代码停止工作,代码在询问“希望继续”时结束...将代码运行良好的那些行。怎么了?

public static void main(String[] args) {
     ArrayList<Humano> lista = new ArrayList<>();
     Scanner input = new Scanner(System.in);
     String userInput;
     do {
        Humano h = new Humano(); 
        System.out.println("Name");
        h.setName(input.nextLine());
        System.out.println("age");//<-----------
        h.setAge(input.nextInt());//<----------this lines causes problems
        lista.add(h);
        System.out.println("wish to continue?");
        userInput = input.nextLine();

    } while (!userInput.equalsIgnoreCase("NO"));

类人类

public class Humano {

private String name;
private int age;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

1 个答案:

答案 0 :(得分:2)

首先回答:)

Scanner#nextInt()方法不会消耗输入的最后一个换行符,因此会消耗下一个可用的换行符()。最好的解决方法是在使用input.nextline()nextInt()next()方法后添加nextFoo()

如需更多答案,请查看: Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods