Могу ли я использовать continue и break в операторе if без циклов в JAVASCRIPT? - PullRequest
0 голосов
/ 02 марта 2020

Хорошо известно, что break и continue могут использоваться внутри al oop:

for (let i = 0; i < 5; i++) {
  console.log(i);
  if (i === 3) {
    break;
  }
}

Есть ли какой-либо способ вместо них в простом операторе if, кроме al oop, выйти из или перезапустить оператор if?

Ответы [ 2 ]

6 голосов
/ 02 марта 2020

Ответ различен для break (да) и continue (нет).

break

Вы можете использовать break в if, да , если вы пометите if. Я не , но вы можете :

foo: if (true) {
    console.log("In if before break");
    break foo;
    console.log("In if after break");
}
console.log("After if");

Это выводит

In if before break
After if

Это не определено c до if. Вы можете пометить любое утверждение, а для тех, у кого есть тело (петли, switch, if, try, with, block, ...), вы можете использовать break в теле, чтобы вырваться из этого. Например, вот пример выхода из оператора блока:

foo: {
    console.log("In block before break");
    break foo;
    console.log("In block after break");
}
console.log("After block");
In block before break
After block

continue

Вы не можете использовать continue с if (даже без маркированного), потому что if не является оператором итерации; с spe c.

Синтаксическая ошибка, если ContinueStatement не является вложенным, прямо или косвенно (но не пересекает границы функций) в пределах IterationStatement .

0 голосов
/ 02 марта 2020

Обычно вы не можете. Вы можете использовать return; только для прекращения выполнения кода в операторе if.

Использование break;

if (true) {
  break;
}
console.log(1)

Использование продолжить;

if (true) {
  continue;
}
console.log(1)
...