两重for 循环怎么用break 进行退出操作?

      Flash学习笔记 2007-4-6 11:33

编程里遇到需要从两重for 循环中退出的情况,经测试,单独的一个break 只能从它最近的那一个for 循环中跳出,但不能直接跳出更外层的循环,为了能够跳出第二层或是更多层的for 循环,需要增加一个变量,当这个变量值被改变时,让全部的for 循环都不执行,代码如下:

修改之前的代码:

//var flag = false;
for (var i = 0; i < 2; i++) {
 // if (flag == true) {
 //break;
 //}
 for (var j = 0; j < 3; j++) {
  if (j == 0) {
   //flag = true;
   break;
  }
  trace("output j: " + j);
 }
 trace("output i: " + i);
}

输出为:
output i: 0
output i: 1

外层循环还是正常执行了两次。

修改之后的代码:

var flag = false;
for (var i = 0; i < 2; i++) {
 if (flag == true) {
  break;
 }
 for (var j = 0; j < 3; j++) {
  if (j == 0) {
   flag = true;
   break;
  }
  trace("output j: " + j);
 }
 trace("output i: " + i);
}
输出为:

output i: 0

外层循环只执行了一次,就不再执行了,达到了预想的效果。

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

回复Comments

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