0

假设当第一个 if 语句和 else 语句中的嵌套 if 都失败时,我是否正确,然后我回到第一个 for 循环并递增i1?

所以我可以继续直到 j < totalCols 失败,即使 if 或 else 语句都没有执行?

var rowCount = [];
for (var i = 0; i < totalRows; i++) {
   rowCount[i]="";
   spaceCount = 0;

   for (var j = 0; j < totalCols; j++) {
      if (puzzle[i][j] == "#") { // if this fails?
         spaceCount++;
         if (j == totalCols-1) rowCount[i] += spaceCount + "&nbsp;&nbsp;"; 
      } else {
         if (spaceCount > 0) { //and this fails?
            rowCount[i] += spaceCount + "&nbsp;&nbsp;";
            spaceCount = 0;
         } 
      }    
   }

}
4

4 回答 4

2

不,如果这些if语句中的任何一个失败,您仍然处于递增的内部循环中j。为了摆脱内部循环,您需要使用该break语句。

于 2012-10-15T19:06:36.060 回答
1

不,您首先完成第二个循环的循环,从而增加 j。

    for (var j = 0; j < totalCols; j++) {

只有当你完成了那个循环后,你才会回到第一个并增加 i。

于 2012-10-15T19:08:08.710 回答
0

如果 if语句失败,嵌套if将不会执行。它进入else块并继续循环,直到满足条件i < totalRows

如果 if语句通过并且嵌套if失败,则循环仍然继续,直到i < totalRows遇到。

如果两个 if 语句都通过,则循环继续条件,直到满足 i < totalRows。

我所说的实质是嵌套循环中的if语句与外循环无关。

于 2012-10-15T19:04:06.907 回答
0

您可以使用 break 语句来实现此行为。编辑:应该先阅读答案。

于 2012-10-15T19:25:07.070 回答