Я думаю, что вам нужно понять, что в вашем коде оператор if
находится внутри цикла while (который находится внутри другого цикла while), и поэтому в этом случае нормально использовать continue
. Оператор if
вне цикла не может использовать continue
. Но внутри цикла for, во время цикла loop или do while, вы МОЖЕТЕ использовать continue внутри оператора if
.
Таким образом, код, который вы предоставили, работает и вывод:
8
3
0
2
Но затем я взял ваш код и прокомментировал два цикла while, и теперь код не компилируется:
int x= 5;
// while (x>=0) {
int y = 3;
// while (y>0) {
if (x<2)
continue; //<-- COMPILE ERROR: continue cannot be used outside of a loop
x--; y--;
System.out.println(x*y + " ");
// }
// }
Вывод:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
continue cannot be used outside of a loop
Я написал очень подробное руководство по циклу Java , которое охватывает оператор продолжения , оператор разбиения и все различные типы циклов в Java.