问题
It's well-known that break
and continue
can be used inside a loop:
for (let i = 0; i < 5; i++) {
console.log(i);
if (i === 3) {
break;
}
}
Is there any way to those in just an if
statement instead, outside a loop, to break out of or restart the if
statement?
回答1:
The answer is different for break
(yes) and continue
(no).
break
You can use break
in an if
, yes, if you label the if
. I wouldn't, but you can:
foo: if (true) {
console.log("In if before break");
break foo;
console.log("In if after break");
}
console.log("After if");
That outputs
In if before break After if
This isn't specific to if
. You can label any statement, and for those with some kind of body (loops, switch
, if
, try
, with
, block, ...), you can use break
within the body to break out of it. For instance, here's an example breaking out of a block statement:
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
You can't use continue
with if
(not even a labelled one) because if
isn't an iteration statement; from the spec.
It is a Syntax Error if this ContinueStatement is not nested, directly or indirectly (but not crossing function boundaries), within an IterationStatement.
回答2:
Normally you can't. You can only use return;
to discontinue code execution in an if statement.
Using break;
if (true) {
break;
}
console.log(1)
Using continue;
if (true) {
continue;
}
console.log(1)
来源:https://stackoverflow.com/questions/60484353/can-i-use-continue-and-break-in-an-if-statement-without-any-loops-in-javascript