Java 有没有办法忽略for循环中的计数器?

Java 有没有办法忽略for循环中的计数器?,java,for-loop,Java,For Loop,如果某个条件适用,我希望for循环不执行I++操作 for (int i = 0; i < r; i++) { for (int j = 0; j < c; j = j+2) { int n = (int)(Math.random()*(474))+1; if(!myList.contains(n)) { myList.add(n);

如果某个条件适用,我希望for循环不执行I++操作

for (int i = 0; i < r; i++) {
            for (int j = 0; j < c; j = j+2) {
                int n = (int)(Math.random()*(474))+1;
                    if(!myList.contains(n)) {
                        myList.add(n);
                        myList.add(n);
                    }
                    else {
                        //Do not do i++ and j = j+2
                    }
            }
        }
for(int i=0;i
您需要将i++从迭代器插槽中移出。不需要完全限定for()语句。例如,for(;;)在java中是合法的

for (int i = 0; i < r; ) {
    for (int j = 0; j < c; j = j+2) {
            int n = (int)(Math.random()*(474))+1;
                if(!myList.contains(n)) {
                    myList.add(n);
                    myList.add(n);
                    i++;
                }
                else {
                    //Do not do i++ and j = j+2
                }
        }
    }
for(int i=0;i
如果某个条件适用,我希望for循环不执行I++操作

for (int i = 0; i < r; i++) {
            for (int j = 0; j < c; j = j+2) {
                int n = (int)(Math.random()*(474))+1;
                    if(!myList.contains(n)) {
                        myList.add(n);
                        myList.add(n);
                    }
                    else {
                        //Do not do i++ and j = j+2
                    }
            }
        }
然后,您可能不希望
for
循环,您可能希望
while
只在不希望
for
循环的相反条件下递增。我会举一个例子,但不清楚您希望内部循环的条件如何影响外部循环。其一般形式为:

int i = 0;
while (i < limit) {
    if (/* Condition where you should increment */) {
        ++i;
    }
}
inti=0;
while(i
小心这种情况,以确保你不会无休止地循环

或者有时倒循环是一个更好的选择,但我认为这不适用于这种情况。

for(int I=0;Ifor (int i = 0; i < r; ) {
    for (int j = 0; j < c; ) {
            int n = (int)(Math.random()*(474))+1;
                if(!myList.contains(n)) {
                    myList.add(n);
                    myList.add(n);
                    i++;
                    j = j+2;
                }
    }
}
对于(int j=0;j您可以使用三元运算符在for循环中测试条件,并且仅在条件为真时更改计数器变量。这意味着您需要将条件变量移出循环。但是你可以这样写

for( int i = 0; i < r; cond ? i++ : i )
{
  .... 
 }
for(int i=0;i
您可以只使用一个while循环,然后只在需要时增加计数器。我如何对这两个for循环执行此操作?@user3472686:这完全取决于您希望它们如何关联,这就是为什么我无法使用两个循环执行示例的原因。根本不清楚您希望内部循环中的条件(在每个外部循环的迭代中重复多次)如何决定外部循环的计数器是否递增。但从根本上说,它归结为:在适当的时候增加计数器。其余部分是特定于问题的逻辑。