반복문이란?
개발을 할 때 어떤 조건 아래 출력하고 싶은 결과물이 한두 개라면 상관없지만,
1부터 100까지의 합을 구하고 싶다거나, 더 나아가 1부터 10000까지의 합을 구하려면 전부 입력하기는 힘들 것이다.
그러기에 자바스크립트에서는 아래와 같이 반복문을 사용하는 다양한 방법이 있다.
✅ for 문
for문은 변수를 선언하는 초기화식과, 결과(true or false(에 따라 실행문의 실행 여부를 판단하는 조건식, 실행문 이후 변수의 증감을 나타내는 증감식으로 3가지로 구성되어 있다.
for(초기화식; 조건식; 증감식) {
실행문; //코드 블럭
}
//ex
let rainbow = ["빨강", "주황", "노랑", "초록", "파랑", "남색", "보라"];
for(let i=0; i<rainbow.length; i++) {
console.log(rainbow[i]);
}
- 초기화식은 코드 블럭이 실행되기 전에 한 번 실행된다.반복문에서 카운팅 역할을 하는 변수를 선언하거나 초기화하는 역할을 한다.
- 조건문에서는 조건이 참인지 거짓인지를 판별한다. 만약 참이라면 코드 블럭을 실행한다 거짓이라면 for문을 종료한다.
- 증감식의 경우 코드 블럭 실행 이후에 증감식을 실행하고 다시 조건문을 판별하는 단계로 돌아간다.
✅ while 문
while문은 조건문이 true일 경우 코드가 실행되며, 조건문이 false가 되면 종료되는 반복문이다.
while(조건문) {
실행문;
}
//아래 예시 코드는 while의 조건문 i < 10을 만족시켜 해당 조건이 true인 동안 실행문을 수행
let i = 2;
let j = 1;
while(j < 10) {
console.log(i + "*" + j + "=" + i * j);
j++;
}
//결과
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
✅ do-while 문
do-while문은 while문과 비슷하지만 조건문 이전에 실행문이 있기 때문에 실행문의 코드가 반드시 한 번은 실행된다.
do {
실행문;
}
while(조건문);
아래 예시에서 do문의 블록은 반드시 실행되고 while문의 조건에 따라 변수 i가 10보다 작을 때까지 실행된 뒤 종료된다.
let sum = 0;
let i = 0;
do {
i++;
sum += i;
}
while(i < 10);
console.log(sum);
//결과
55
그 외 반복문 특징들
✅ break
반복문이 조건에 따라 종료되기 이전에 종료를 원하면 break를 사용하여 반복문에서 나올 수 있다.
break문으로 반복문이 종료되면 그 다음 코드가 실행된다.
let i = 0;
while (i < 100) {
i++;
if( i === 19) {
console.log(i + '살 부터 성인이 됩니다.');
break;
}
}
console.log('성인이 되신 걸 축하합니다!');
//결과
19살 부터 성인이 됩니다.
성인이 되신 걸 축하합니다!
✅ continue
continue문은 break문과 유사하게 동작하지만, 반복문을 완전히 빠져나가는 break와 다르게 continue문은 반복문의 다음 반복으로 이동한다.
아래의 예시 코드를 보면, 변수 i가 19보다 작다는 조건문에서 continue가 실행되기 때문에 해당 조건의 반복을 넘어서(남은 코드 실행되지 않음) 다음 반복으로 이동한다.
따라서 if 조건문(조건문은 다음에 정리 할 예정이다.)에 해당하지 않는 19 이상의 변수값부터 console.log(i + '살은 성인이 아닙니다.')가 실행된다.
만약 continue가 실행되지 않았따면 0살은 성인이 아닙니다.부터 19살은 성인이 아닙니다.가 모두 실행되었을 것이다.
for (let i = 0; i < 25; i++) {
if (i < 19) continue;
console.log(i + '살은 성인입니다.');
}
//결과
19살은 성인입니다.
20살은 성인입니다.
21살은 성인입니다.
22살은 성인입니다.
23살은 성인입니다.
24살은 성인입니다.
'Language > JavaScript' 카테고리의 다른 글
브라우저 이벤트(Event) (0) | 2023.12.04 |
---|---|
프로토타입(Prototype) (0) | 2023.09.09 |
Class(생성자 함수, 객체 생성 방식) (0) | 2023.09.02 |
조건문(if, if...else, switch) (0) | 2023.08.31 |
변수(Variable) (0) | 2023.08.26 |