循环运行不止一次,不知道它为什么

时间:2014-11-14 20:16:01

标签: java loops if-statement for-loop

这可能是一个非常愚蠢的错误,但我似乎无法弄明白。当用户将选项设置为1以添加数据时,它应该弹出为数据>然后他们插入他们的数据。但是,它会发布数据>数据>显示循环运行两次,但我不明白它如何运行两次而不输入输入以使其再次运行。代码的最后一部分是在用户完成输入完成后完成循环。

while (true) {
        System.out.print("Select choice: "); 

        choice = s.nextInt();

        if (choice == 1) {
            inner: for (i = 0; i < 100; i++, count2++) {
                System.out.print("data>");
                line[i] = s.nextLine();
                if (line[i].equals("done")) {
                    break inner;
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

问题是choice = s.nextInt();会留下nextLine()然后读取的尾随换行符(作为空String)。添加nextLine()这样的电话,

choice = s.nextInt(); // <-- reads int value only.
s.nextLine(); // <-- consume trailing newline.