如果某个条件适用,我希望我的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
}
}
}
答案 0 :(得分:7)
如果某个条件适用,我希望我的for循环不执行i ++。
然后你可能不想要一个for
循环,你可能想要while
仅在你不想要{{1}的条件的相反方向增量}} 至。我做了一个例子,但不清楚你希望内环的条件如何影响外部。一般形式是:
for
小心条件,确保你不会无休止地循环。
或者有时向后循环是一个更好的选择,但我不认为这适用于这种情况。
答案 1 :(得分:5)
您需要从迭代器插槽中移动i ++。您不需要完全限定for()语句。 I.E. 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
}
}
}
答案 2 :(得分:0)
您可以使用三元运算符测试for循环中的条件,并仅在条件为真时更改计数器变量。这意味着您需要在循环外部移动条件变量。但你可以写这样的东西
for( int i = 0; i < r; cond ? i++ : i )
{
....
}
答案 3 :(得分:-1)
for (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;
}
}
}