繁体   English   中英

Android Studio for Loop问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM