在eclipse中调试for-循环的便捷方法

zdwk9cvp  于 2022-09-21  发布在  Eclipse
关注(0)|答案(4)|浏览(306)

如何在eclipse中调试复杂的for循环,如下面的代码所示?

import java.util.Arrays;
import java.util.List;

public class ListTraining {

    public void countOccurence() {
        List<Integer> numbers = Arrays.asList(3, 4, 3, 5, 2, 3);
        Integer number = 3;     
        for (int i = numbers.indexOf(number), j = -1; i > j; j = i, i += numbers.subList(i + 1, numbers.size()).indexOf(number) + 1) {
            System.out.println("found number: " + number + " at position: " + i);           
        }       
    }

}

如果我使用“Step Over”,我就在指令块中。如果我使用“Step Into”,我就在indexOf这样的方法中。我如何才能轻松地研究循环标头中的变量和调用?

是否可以像在条件检查或变量赋值中那样跳过循环的单个指令?

kninwzqo

kninwzqo1#

在for循环处暂停调试器。突出显示一段代码。右击它并选择“Inspect”选项以查看其值(例如,突出显示numbers.indexOf(number)以查看该函数的返回值是什么)。

uqcuzwp8

uqcuzwp82#

使用调试视图的变量组件

yr9zkbsy

yr9zkbsy3#

如果您的for运行得很好,我建议使用system.println(对数据进行递增的字符串)。查看每个循环中的数据。控制台将显示循环的内容。

如果您的for在某个时刻中断,我建议使用调试模式并在循环中间放置一个断点,每次到达断点时代码的执行都将停止,您可以查看处于该状态的for循环中的所有变量。

weylhg0b

weylhg0b4#

将for循环的头拆分为多行

for (int i = numbers.indexOf(number), j = -1; 
            i > j; 
            j = i, i += numbers.subList(i + 1, numbers.size()).indexOf(number) + 1) {
        System.out.println("found number: " + number + " at position: " + i);           
    }

相关问题