在写代码的时候想用到这样一个功能,就是利用for 循环来循环检测,检测内部又要分成好几种情况,如果有一种情况不符合,就希望退出for 循环。这里遇到一个问题,就是 switch 结构里也有 break , 那么再写 break 能不能从for 循环中退出呢?代码如下:
var direct = "Up";
for (var j = 0; j < 5; j++) {
switch (direct) {
case "Up" :
if (true) {
trace("me");
break;
}
break;
default :
trace("something wrong here!");
}
trace("ok");
}
测试的结果是: me 和 ok 交替出现5 次,这说明if 条件判断中的 break 并不能使程序从 for 循环中退出。解决的办法是将 switch 结构另写到一个函数中去,让该函数能够返回一个逻辑值,在for 循环对返回值进行检测,就或以避免 break 失效的情况了。