我是否正确假设当第一个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 + " ";
} else {
if (spaceCount > 0) { //and this fails?
rowCount[i] += spaceCount + " ";
spaceCount = 0;
}
}
}
}
答案 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语句来实现此行为。 编辑:应该先阅读答案。