1부터 10까지 로그를 찍어야 한다면?
console.log(1);
console.log(2);
console.log(3);
console.log(4);
...
console.log(10);
100까지 찍어야 한다면?
10000까지 찍어야 한다면?
반복문을 쓰자!
반복문 loop : 동일한 작업을 여러번 반복
구조는 아래와 같다.
🎀for
for (let i = 0; i < 10; i++) {
// 반복할 코드
}
세 부분으로 나뉘어짐.
1. 초기값 : let i = 0
반복문에 진입할 때 처음 한번만 실행 됨.
조건 : i < 10
반복문이 돌면서 false가 되면 멈춤.
i가 10보다 작으면 true를 반환
코드 실행 후 작업 : i++
i에 1을 더하면서 증가시켜준다는 의미.
반복할 코드 실행, 4. 괄호 3번째 부분의 작업을 진행
최초의 i=0이고
i가 0보다 작으므로
코드 실행
i값 1 증가
i=1
i가 10보다 작으므로
코드 실행
i값 1 증가
(반복...) 5. 조건 확인 6. 코드 실행 7. 증가시켜줌...
(반복...)...조건 확인후 false이면 반복문을 빠져나옴.
for (let i = 0; i < 10; i++) {
// console.log(i)
}
-> 0 1 2 3 4 5 6 7 8 9
for (let i = 0; i < 10; i++) {
// console.log(i+1)
}
-> 1 2 3 4 5 6 7 8 9 10
for (let i = 0; i < 11; i++) {
// console.log(i)
}
-> 1 2 3 4 5 6 7 8 9 10
for (let i = 1; i <= 10; i++) {
// console.log(i)
}
-> 1 2 3 4 5 6 7 8 9 10
🎀while
let i=0;
while (i<10){
console.log(i);
i++;
}
-> 0 1 2 3 4 5 6 7 8 9
🎀do.. while (while과 비슷하지만 조건문을 아래로 옮길 수 있음.)
let i=0;
do {
console.log(i);
i++;
} while (i<10)
일단 코드를 실행하고 조건을 체크하므로 적어도 한번 이상은 실행하게 됨. 이 점에서 while과 차이가 있다.
🎀break, continue
break : 멈추고 빠져나옴.
while(true){
let answer = confirm('계속 할까요?');
if(!answer){
break;
}
}
-> break를 만날 때까지 코드 반복. break를 만나려면 answer가 false가 되어야 함. 확인을 누르면 반복하고, 취소를 누르면 answer에 false가 들어가서 break 만남.
참고 : while(true)는 무한 반복 되므로 조심해서 사용해야 함.
(어렵)😅continue : 멈추고 다음 반복으로 진행. (반복문을 빠져나오지는 않음.)
for(let i=0; i < 10; i++){
if(i%2){
continue;
}
console.log(i)
}
-> 0 2 4 6 8
i를 2로 나눴을 때
1이면 if문을 통과. (0은 false, 1은 true)
0을 2로 나누면 나머지가 0이므로(false) continue문을 만나지 못하고
console을 찍는다. -> 1로 증가.
1을 2로 나누면 나머지가 1이므로(true) continue문을 만나서
로그 찍지 않고 continue문에서 바로 다음 작업으로 진행됨.
이 과정 반복하고 결국 짝수만 남음.
팁 : 명확한 횟수가 정해져 있으면 for문을, 그게 아니면 while을 사용하자.
do while은 거의 사용 안함.
continue문이 잘 이해가 가지 않고 어렵다. 주말에 멘토님께 문의드리고 다시 공부해야겠다.
-> 유튜브 댓글 보고 if(i%2)일 때 왜 continue문을 만나지 못하고 console로 넘어가는지 확인 ! Boolean값이 false이기 때문이다.