[英]Android Studio for loop issue
private static final String TAG = MainMenu.class.getSimpleName();
Log.d(TAG, "begin loop");
for (int fa = 0; fa < 2000; ++fa) {
Log.d(TAG, "starting loop " + String.valueOf(fa));
for (int fb = 0; fb < 8; ++fb) {
Log.d(TAG, "fb = " + String.valueOf(fb));
}
}
我知道这是一个非常简单的嵌套循环。 我正在发生一些棘手的事情,我一生都无法理解为什么。 我尝试使用while循环重写它,但是发生了同样的事情。
这是一个正在发生的棘手事情的示例:
D: starting loop 53
D: fb = 0
D: fb = 1
D: fb = 2
D: fb = 3
D: fb = 4
D: fb = 5
D: fb = 6
D: starting loop 54
D: fb = 0
D: fb = 2
D: fb = 3
D: fb = 4
D: fb = 6
D: starting loop 55
D: fb = 0
D: fb = 1
D: fb = 3
D: fb = 4
D: fb = 6
D: starting loop 56
D: fb = 0
D: fb = 1
D: fb = 3
D: fb = 4
D: fb = 6
D: fb = 7
D: fb = 0
D: fb = 1
D: fb = 3
D: fb = 4
D: fb = 6
D: fb = 7
我放置了第一个日志语句,以便知道它是否正在另一个线程中运行,并以某种方式使指针复位,但是在日志中只有一个“开始循环”。
您可以在循环53中看到它甚至没有达到7,在循环54和55中它跳过了数字,而在56中它又重新开始了。
这是行未记录的问题还是循环的问题?
我尝试注释掉内部Log并得到如下输出:
D: starting loop 1642
D: starting loop 1643
D: starting loop 1645
D: starting loop 1646
D: starting loop 1647
D: starting loop 1649
D: starting loop 1650
D: starting loop 1652
您可以看到它正在跳过数字。 我希望这只是一个日志记录问题,并且for循环没有什么大问题。
任何人都能给予的任何帮助,我们将不胜感激。 提前致谢。
您的代码应该可以,但是不能。 你为什么问? 我认为它与您的代码无关,但更多与控制台IO有关。 您正在(毫秒)秒内编写1800行,这可能会出错:D
尝试在迭代中添加一些睡眠,或者只打印更少的睡眠
编码愉快!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.