Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 在进行下一次迭代之前,如何使for循环完全执行任务?_Java_If Statement_For Loop - Fatal编程技术网

Java 在进行下一次迭代之前,如何使for循环完全执行任务?

Java 在进行下一次迭代之前,如何使for循环完全执行任务?,java,if-statement,for-loop,Java,If Statement,For Loop,我试图在工作中解析一个文件,但由于某种原因,我的for循环在进入下一个迭代之前不会执行整个任务迭代 我这里有一个显示相同问题的示例代码,我认为如果我能修复这个简单的示例,我将能够修复工作中更复杂的问题 示例代码: package loops; public class Loops { public static void main(String[] args) { System.out.println("here goes"); for(int i=0;i<1000

我试图在工作中解析一个文件,但由于某种原因,我的for循环在进入下一个迭代之前不会执行整个任务迭代

我这里有一个显示相同问题的示例代码,我认为如果我能修复这个简单的示例,我将能够修复工作中更复杂的问题

示例代码:

package loops;
public class Loops {
    public static void main(String[] args) {
    System.out.println("here goes");
    for(int i=0;i<1000;i++){
        System.err.println(i);
        if(i==i){
            System.out.println(i+1);
        }
    }
}}
包循环;
公共类循环{
公共静态void main(字符串[]args){
System.out.println(“开始了”);

对于(int i=0;iStdout是缓冲的,stderr不是。将两者都打印到Stdout或两者都打印到stderr,不要将它们混合使用。

这是因为
System.out
System.err
都可以缓冲流。这意味着数据放在流上时不会正确执行写入操作,而是分块执行

尝试在每次打印后立即刷新输出:

System.out.println(...);
System.out.flush();

通过这种方式,您将强制流在执行其他指令之前刷新其缓冲区。这可能会带来性能代价。

在for循环中添加了System.out.flush(),结果相同。现在我知道您是正确的。添加System.out.flush()和System.err.flush()是正确的确实解决了问题。只需要刷新两个。这解决了问题,谢谢。