2012-10-15 3 views
0

첫 번째 if 문과 else 문 내에서 중첩 된 경우 모두 실패한 다음 첫 번째 루프로 돌아가서 i을 1 씩 변경한다고 가정합니다.else 문이 중첩 된 경우

그렇다면 if 또는 else 문이 실행되지 않아도 < totalCols가 실패 할 때까지 계속할 수 있습니까? if 문이 실패 할 경우

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; 
     } 
     }  
    } 

} 
+0

그렇다면 if 또는 else 문이 실행되지 않아도 j KMcA

답변

2

아니요, 해당 if 문 중 하나가 실패하면 여전히 내부 루프에있는 j이 증가합니다. 내부 루프에서 벗어나려면 break 문을 사용해야합니다.

+0

저스틴, if 또는 else 문이 실행되고 있지 않아도 j KMcA

+0

글쎄, 그들은'j' 루프의 반복마다 실행될 것입니다 ... –

+0

저스틴, 미안하지만 지금은 두 번째 코멘트에 혼란스러워합니다. 두 문 모두 false를 반환하면 명령문을 어떻게 실행할 수 있습니까? 예를 들어 (puzzle [i] [j] == "#") false를 반환하고 (spaceCount> 0) false도 반환합니까? 참고로 ... 저는 매우 새롭고, 기본 진술이있는 경우만 보았습니다. – KMcA

0

중첩 if은 실행되지 않습니다. else 블록으로 이동하고 루프는 조건 i < totalRows이 충족 될 때까지 계속됩니다.

if 문이 성공하고 중첩 된 if이 실패하면 이 충족 될 때까지 계속 루프가 계속됩니다.

두 if 문이 모두 통과하면 루프는 < totalRows가 충족 될 때까지 계속됩니다.

본질적으로 중첩 루프의 if 문은 외부 루프와 아무 관련이 없습니다.

1

아니요, 처음에는 두 번째 루프를 반복하여 j를 증가시킵니다.

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

루프가 끝나면 첫 번째로 돌아가서 i를 증가 시킵니 다.

0

break 문을 사용하여이 동작을 수행 할 수 있습니다. 편집 : 먼저 답변을 읽었어야합니다.

관련 문제