for문 내에 for문을 중첩하여 사용할 수 있다. 주의할 점은 안에 while 문도 중첩이 가능하며, while 문 내에 for문 등 서로 중첩이 가능하다.
// 두개의 주사위를 굴렸을 때 두눈의 합이 6이 되는 경우의 수를 구해야한다면?
// 주사위는 1~6까지 있으니 초기값은? '1' 이다.
let i = 1; // 주사위 i 초기값 설정
let j = 1; // 주사위 i 초기값 설정
for (let i = 1; i <= 6; j++) { // 밖의 폴문이 한번 돌면
for (let j = 1; j<= 6; j++) { // 안의 for문이 끝까지 한번 돈다. 다 돌면 다시 바깥의 for문이 한번 돈다.
if (i + j === 6) // 두 주사위의 합이 6이면 참이다. true!
}
}
comsole.log(`[${i}, ${j}]`)
// 경우의 수 값 : [1,5] [2,4] [3.3] [4,2] [5,1]
break 문을 사용하면 레이블 문, 반복문 또는 switch 문의 코드블록을 탈출할 수 있다.
만약 레이블 문, 반복문 또는 switch 문 외에 break문을 사용하면 문법에러 (SyntaxError)가 발생한다.
for (let count = 0; count < 5; count++) {
console.log(count);
if (count === 2) {// count 값이 2 일때
break; // break문을 만나 2 까지만 출력되고 코드블록을 탈출함.
}
}
// count = 0 // count = 1 // count = 2
continue 문을 사용하면 반복문의 코드 블록의 실행을 중단하고 반복문의 증감식을로 실행시킨다.
continue 문을 사용하면 if문 밖에 코드를 작성할 수 있고, continue문을 사용하지 않으면 if문 내에 코드를 작성해야한다.
// continue문 사용하여 특정 문자의 개수를 세는 예
let str= 'Hello World';
let search = 'l';
let count = 0;
let i = 0;
for (let i = 0; i < str.lenght; i++){ // for문으로 i가 문자열의 인덱스가 크지 않을떄 까지 문자열을 순회하며
if (str[i] !== search) {continue; // 문자열의 인덱스[i]가 l 인덱스 위치가 아니면 i++증감문은 재실행한다.
count++; // continue문이 실행되면 실행되지 않는다.
} // 문자열의 인덱스가 l의 위치에 오면 참이 되어 count 개수가 +1 된다.
}
console.log(count) // 3 // 문자열에서 l 의 개수는 3이다.
// continue문 없을때 특정 문자의 개수를 세는 예
let str= 'Hello World';
let search = 'l';
let count = 0;
let i = 0;
for (let i = 0; i < str.lenght; i++){ // for문으로 i가 문자열의 인덱스가 크지 않을떄 까지 문자열을 순회하며
if (str[i] === search) { // 문자열의 인덱스[i]가 l 인덱스 위치면
count++; // 문자열의 인덱스가 l의 위치에 오면 참이 되어 count 개수가 +1 된다.
}
}
console.log(count) // 3 // 문자열에서 l 의 개수는 3이다.