2007/04/06 | for 循环中有 switch 时 break 还有用吗?
类别(Flash学习笔记) | 评论(3) | 阅读(2014) | 发表于 11:24

在写代码的时候想用到这样一个功能,就是利用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 失效的情况了。

0

评论Comments