Подтвердить что ты не робот

В Java, как разрыв взаимодействует с вложенными циклами?

Я знаю, что оператор break выпрыгивает из цикла, но выпрыгивает ли он из вложенных циклов или только из его текущего?

4b9b3361

Ответ 1

Без какого-либо украшения break выйдет из самого внутреннего цикла. Таким образом, в этом коде:

while (true) { // A
    while (true) { // B
         break;
    }
}

break только выходит из цикла B, поэтому код будет циклически навсегда.

Однако у Java есть функция, называемая "break", в которой вы можете назвать свои циклы, а затем указать, из какого из них выйти. Например:

A: while (true) {
    B: while (true) {
         break A;
    }
}

Этот код не будет зацикливаться навсегда, потому что break явно оставляет цикл A.

К счастью, эта же логика работает для continue. По умолчанию continue выполняет следующую итерацию самого внутреннего цикла, содержащего оператор continue, но его также можно использовать для перехода к итерациям внешнего цикла, указав метку цикла для продолжения выполнения.

В языках, отличных от Java, например, C и С++, этот оператор с надписью "помеченный разрыв" не существует, и непросто вырваться из многократного вложенного цикла. Это можно сделать с помощью оператора goto, хотя обычно это не одобряется. Например, вот что такое вложенный разрыв может выглядеть как на C, предполагая, что вы готовы игнорировать совет Дейкстры и использовать goto:

while (true) {
    while (true) {
        goto done;
    }
}
done:
   // Rest of the code here.

Надеюсь, это поможет!

Ответ 3

Вы также можете выйти из-за использования Исключения, поэтому вы можете обрабатывать несколько причин.

 void fkt1() {
    try {
        while (true)
            fkt2();
    } catch (YourAbortException e) {
        e.printStackTrace();
    }

    //go on
}

void fkt2() {
    while (true)
        if (abort)
            throw new YourAbortException();
}

Ответ 4

он прерывает 1 цикл. очень просто. для ex:

for loop
   for loop
      break;
   end for loop
end for loop

вырывается из внутреннего цикла, но все еще во внешнем цикле