for 循环中有 switch 时 break 还有用吗?

      Flash学习笔记 2007-4-6 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 失效的情况了。

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}