跳过for循环的某些迭代

Kom*_*ten 0 java for-loop

我正在编写一个for循环来通过一个包含38个元素的2D.但是,其中一些元素为null,我希望for循环简单地跳过它们(因为在我解决的难题中,它们没有与它们相关的移动).快速搜索显示我可以在循环开始的continue语句中跳过带有简单语句的迭代.但是,我想跳过多次迭代,我写的if语句不起作用:iffor

for (int i = 0; i < triplets.length; i++) {
    if (i == 18 || 19 || 25 || 26 || 28 || 29 || 31 || 32) {
        continue;
    }
Run Code Online (Sandbox Code Playgroud)

是否可以选择制作8个单独的if陈述,还是我坚持下去?

use*_*685 5

你没有正确地给出这个条件.它应该是这样的:

if (i == 18 || i == 19 || i == 25 || i == 26 || i == 28 || i == 29 || i == 31 || i == 32) {
    continue;
}
Run Code Online (Sandbox Code Playgroud)

或者,我建议你做这样的事情:

  1. 创建一个HashSet并将要比较的值放入其中.

  2. 检查是否HashSet包含i,如果是,则继续循环.

    Set<Integer> set = new HashSet<>();
    set.add(18);
    set.add(19);
    set.add(25);
    set.add(26);
    set.add(28);
    set.add(29);
    set.add(31);
    set.add(32);
    
    if(set.contains(i)) {
        continue;
    }
    
    Run Code Online (Sandbox Code Playgroud)