Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 循环不止一次运行,不知道为什么_Java_Loops_If Statement_For Loop - Fatal编程技术网

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

Java 循环不止一次运行,不知道为什么,java,loops,if-statement,for-loop,Java,Loops,If Statement,For Loop,这可能是一个非常愚蠢的错误,但我似乎无法理解。当用户将选项设置为1以添加数据时,它应该以data>的形式弹出,然后他们插入数据。然而,它发布了data>data>显示循环运行了两次,但我不明白它如何能够运行两次,而不输入使其再次运行。代码的最后一部分太过复杂,当用户完成输入时,就无法中断循环 while (true) { System.out.print("Select choice: "); choice = s.nextInt(); if

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

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;
                }
            }
        }
while(true){
系统输出打印(“选择选项:”);
choice=s.nextInt();
如果(选项==1){
内部:用于(i=0;i<100;i++,count2++){
系统输出打印(“数据>”);
第[i]行=s.nextLine();
如果(第[i]行等于(“完成”)){
打破内在;
}
}
}

问题是
choice=s.nextInt();
留下一个尾随新行,该新行
nextLine()
然后读取(作为一个空
字符串
)。添加一个
nextLine()
调用如下

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

choice=s.nextInt();//是的,非常感谢。