for (int j = 0; j < 5; j++) //inner loop
следует заменить на
for (int j = 0; j < 5 && !exitloops; j++)
.
Здесь, в этом случае завершенные вложенные циклы должны быть завершены, если условие True
. Но если мы используем exitloops
только для верхнего loop
for (int i = 0; i < 5 && !exitloops; i++) //upper loop
Тогда внутренний цикл продолжится, потому что нет никакого дополнительного флага, который уведомил бы этот внутренний цикл о выходе.
Пример: если i = 3
и j=2
, то условие равно false
. Но в следующей итерации внутреннего цикла j=3
тогда условие (i*j)
становится 9
, что составляет true
, но внутренний цикл будет продолжаться, пока j
не станет 5
.
Таким образом, он должен использовать exitloops
и для внутренних циклов.
boolean exitloops = false;
for (int i = 0; i < 5 && !exitloops; i++) { //here should exitloops as a Conditional Statement to get out from the loops if exitloops become true.
for (int j = 0; j < 5 && !exitloops; j++) { //here should also use exitloops as a Conditional Statement.
if (i * j > 6) {
exitloops = true;
System.out.println("Inner loop still Continues For i * j is => "+i*j);
break;
}
System.out.println(i*j);
}
}