Java for循环迭代

Java for循环迭代,java,android,for-loop,Java,Android,For Loop,我已经多次运行代码,想知道出了什么问题 这个简单的for循环应该运行4次。为什么它只运行两次?? 我错过什么了吗。我正在使用android studio股票模拟器api-28进行调试 boolean[] booleans = {false, false, false, false}; for(boolean b : booleans){ System.out.println(b); } 请检查编辑的代码并记录cat输出 乍一看,在Android Studio中,它在调试时打印

我已经多次运行代码,想知道出了什么问题

这个简单的for循环应该运行4次。为什么它只运行两次?? 我错过什么了吗。我正在使用android studio股票模拟器api-28进行调试

boolean[] booleans = {false, false, false, false};

for(boolean b :  booleans){

     System.out.println(b);
}

请检查编辑的代码并记录cat输出


乍一看,在Android Studio中,它在调试时打印两到三次,在调试选项卡中,但是
事实是:

I/System.out: Start
I/System.out: false
I/System.out: false
I/chatty: uid=10075(u0_a75) com.xxxxxxxxx.xxxx identical 1 line
I/System.out: false
I/System.out: End


正如你所看到的那样,它代替了打印

I/System.out: false
喜欢打印

I/chatty: uid=10075(u0_a75) com.xxxxxxxxx.xxxx identical 2 lines

为什么?我不能说
也许类似的事情会发生在Logcat选项卡中
是,在Logcat选项卡中类似:

2018-12-04 14:16:17.756 2209-2209/com.xxxxxxxxx.xxxx I/System.out: false
2018-12-04 14:16:23.902 2209-2209/com.xxxxxxxxx.xxxx I/chatty: uid=10075(u0_a75) com.xxxxxxxxx.xxxx  identical 2 lines
2018-12-04 14:16:24.929 2209-2209/com.xxxxxxxxx.xxxx I/System.out: false
2018-12-04 14:16:25.860 2209-2209/com.xxxxxxxxx.xxxx I/System.out: End
所以最后: 通过删除“系统”删除对输出窗口的过滤,您将看到类似的输出

I/System.out: false


问题不在于代码,它可能与某种输出缓冲问题有关。在最后一个println语句之后打印一些内容,您将看到情况就是这样。注意,有时标准误差会超过标准输出。您可以尝试刷新标准输出,但问题可能在于特定的调试器/控制台配置。您的输出显示的GC输出中断了活动的创建。您的其他错误打印输出很可能在GC输出下面的某个地方。丑陋的黑客:在退出主循环之前添加一秒钟的睡眠,以便在打印后一段时间结束该过程。否则,您需要查看您的环境(设置)。学习调试将是代码丛林中一项有用的生存技能。:)我已经在jdoodle.com上测试了这段代码及其工作原理,但是我也没有在Karan的输出中看到那些“闲聊”行。你能解释一下原因吗?我不能说,这些结果来自我的测试。@MaartenBodewes,这是调试选项卡。也许类似的事情也会发生在Logcat选项卡中,如果它有时执行,有时不执行,也可能与时间有关。但是三行。。。嘘。也许他们不应该让碎屑进行计数。好的,所以可能会抑制闲聊的输出。
I/System.out: false
identical 2 lines