2014-11-14 112 views
0

这可能是一个非常愚蠢的错误,但我似乎无法弄清楚。当用户将选项设为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

的问题是,choice = s.nextInt();留下尾随新行nextLine()然后读取(为空String)。添加一个nextLine()来电类似,

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

是的完美谢谢你。 – Krysiak 2014-11-14 20:20:30

相关问题