具有嵌套if的Else语句

时间:2012-10-15 19:02:41

标签: javascript nested-loops

我是否正确假设当第一个if语句和嵌套在else语句中都失败时,我会回到第一个for循环并将i递增1?

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

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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

不,你首先完成第二个循环的循环,然后递增j。

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

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

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

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