반복문을 사용하면 불필요한 코드를 반복적으로 사용하지 않고 간결하게 코드를 작성할 수 있다.
for (초기값; 조건식; 증감식) { // 실행할 코드 }
와 같은 형식으로 구성돼있다.
- 초기값 : 증감식 반복 횟수를 카운트하는 역할을 하는 변수 ( 반복문의 코드블록 내부에서만 유효 )
let i = 0 ( 초기값 (i)를 선언하고 1을 할당함 )- 조건식: 코드블록 내부의 코드를 실행 여부를 결정. true일 경우에는 코드를 실행하며, false일 경우 반복문이 종료
i <= num ( i가 num보다 작거나 같을 경우 코드 실행, num보다 클 경우 반복문 종료 )- 증감식: 코드블록 내부의 코드를 실행한 후 초기값으로 선언된 변수를 증가 또는 감소시키기 위한 표현식
i++ ( 코드가 실행될 때마다 i가 1씩 증가 )
- 외부 반복문의 초기화와 조건식 평가가 이루어진 후, 내부 반복문 실행.
- 내부 반복문 또한 초기화와 조건식 평가가 이루어진 후 내부에 있는 코드가 실행되고, 증감식, 조건식 평가가 반복적으로 이루어짐.
- 내부 반복문의 조건식 평가가 false가 되면, 내부 반복문 은 종료가 되고 외부 반복문의 증감식과 조건식 평가가 이루어짐, 조건식 평가가 true면, 다시 내부 반복문을 순환하는 방식으로 진행. 외부 반복문의 조건식이 false가 되면 모든 반복문이 종료.
for (let first = 0; first <= 3; first++) { for (let second = 0; second <= 3; second++) { for (let third = 0; third <= 3; third++) { console.log( `first는 ${first}, second는 ${second}, third는 ${third}입니다.` ); } } }
반복문은 두 개 이상 중첩 가능. 2개의 반복문이 중첩된 경우 이중반복문, 3개의 반복문이 중첩된 경우 삼중반복문이라고 부름.
초기화, 조건식, 증감식이 모두 필요한 for문과 달리 while문은 조건식만 입력한 후 조건식의 평가결과가 true인 경우 코드블록 내부의 코드를 반복하여 실행
let num = 0; while (num < 3) { console.log(num); // 0 1 2 num++ }
do…while문은 while 뒤에 오는 조건식이 true로 평가되는 동안 do 뒤에 오는 코드블록 내부의 코드를 반복하여 실행. 단, 이 경우 do의 코드블록 내부의 코드가 최소 한 번은 실행
do { console.log('코드블록 내부의 코드는 최소 한 번은 실행됩니다.') // '코드블록 내부의 코드는 최소 한 번은 실행됩니다.' } while (false)
for문과 while문의 용도는 명확하게 구분되지 않지만 주로 사용되는 경우가 있다.
for문을 사용하는 경우
while문을 사용하는 경우
반복문은...이중반복문, 삼중반복문처럼 중첩이 되는경우 난이도가 확 오르는거 같다.
외부반복문에 무슨 조건을 달고....내부에 무슨 조건을 달아야 할지 감이 잘 오지않는다.
그리고 문제를 풀면서 느끼는점은 일단 중첩반복문 공식을 적어두고 대충 if몇개 쓰면 전부 풀리긴한다.
하지만 이게 왜 이렇게 되는건지 이렇게 하면 왜 안되는건지 잘 모르겠다. 뭔가 풀렸는데..왜 된거지싶다.
디버거 모드로 이것저것 이해해보려고 노력해야겠다. 화이팅