一、利用逻辑表达式
1、用逻辑运算符(例如&&,||),将多个条件连接起来,使得在满足某一个条件时就跳出if语句。例如:
if (a > 10 || b < 5 && c == 0) {
// do something
}
当a大于10,或者b小于5并且c等于0时,就执行if块中的内容,而不用再继续判断后面的条件。
2、利用三元运算符(例如?:),使得在满足某一个条件时就跳出if语句。例如:
a > 10 ? doSomething() : doNothing();
当a大于10时,执行doSomething()函数,否则执行doNothing()函数,而不用再继续执行后面的if语句块。
二、利用break语句
1、在switch语句中,利用break语句跳出switch语句:
switch (n) {
case 1:
// do something
break;
case 2:
// do something else
break;
default:
// do something when n is not 1 or 2
break;
}
当n等于1或2时,就执行相应的case语句块,然后跳出switch语句。当n不是1或2时,执行default语句块,然后也跳出switch语句。
2、在循环语句中,利用break语句跳出循环:
while (condition) {
// do something
if (needToBreak) {
// exit the loop
break;
}
}
当满足needToBreak条件时,就退出循环,并不再执行循环内的语句块。
三、利用函数封装
1、将需要跳出if语句的代码块封装到一个函数中,在函数内部使用return语句跳出函数,也就相当于跳出了if语句。例如:
function doSomething() {
if (a > 10) {
// do something
return;
}
// continue to do something else
}
当a大于10时,执行// do something注释所标注的代码块,并跳出doSomething函数,不再执行任何代码。
2、将需要跳出if语句的代码块封装到一个标记函数中,在函数内部使用标记语句(label statement)跳转到标记位置,也就相当于跳出了if语句。例如:
function doSomething() {
function endFunction() { /* end */ }
if (a > 10) {
// do something
endFunction();
}
// continue to do something else
}
当a大于10时,执行// do something注释所标注的代码块,并跳转到endFunction函数的位置,不再执行任何代码。
四、利用try-catch语句
在try语句块中尝试执行需要跳出if语句的代码块,如果执行成功,就使用throw语句抛出一个异常,然后捕获该异常并在catch语句块中跳出if语句。例如:
try {
if (a > 10) {
// do something
throw 'break if';
}
// continue to do something else
} catch (e) {
if (e === 'break if') {
// jump out of the if statement here
}
}
当a大于10时,执行// do something注释所标注的代码块,并在throw语句中抛出'break if'异常。然后在catch语句块中捕获该异常,判断异常值是否等于'break if',如果是,就跳出if语句块。