2024. 7. 14. 08:58ㆍ카테고리 없음
제어문이란?
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다.
블록문
중괄호({ })로 묶은 것을 말한다. 문의 끝에는 세미콜론을 붙이지만, 블록문은 붙이지 않는다. 단독으로 사용할 수 있으나 제어문이나 함수를 정의할 때 사용한다.
조건문
if...else문
if...else문과 switch문이 있다. if...else문은 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다. 조건식이 불리언 값이 아니더라도 불리언 값으로 강제로 변환되어 실행한다.
if (조건식) {
//참이면 이 코드 블록이 실행된다.
} else {
//조건식이 거짓이면 이 코드 블록이 실행된다.
}
switch문
주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다. 해당 사항이 없다면 default문으로 이동한다. 다만, default문은 선택 사항이다.
switch(표현식){
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행될 문;
break;
case 표현식2:
switch 문의 표현식과 표현식2이 일치하면 실행될 문;
break;
default:
switch 문의 표현식과 일치하는 case문이 없을 때 실행될 문;
}
주의 사항은 실행 흐름이 이동한 뒤에 break를 명령하지 않으면 아래에 있는 모든 case문을 실행하는 폴스루(fall through)가 발생한다. 다만, default는 맨 마지막에 위치하므로 break문을 생략하는 것이 일반적이다.
var month = 11;
var monthName;
switch(month){
case 1:monthName = 'January';
break;
case 2: monthName = 'February';
break;
.....
default:monthName = 'Invalid month';
}
반복문
조건식의 평가 결과가 참인 경우에 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 다시 실행하여, 조건식이 거짓일 때까지 반복한다.
for문
for문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다.
for(변수 선언문 또는 할당문; 조건식; 증감식){
조건식이 참인 경우 반복 실행될 문;
}
for(var i = 0; i < 2; i++){
console.log(i);
}
변수 선언문, 조건식, 증감식은 모두 옵션이다. 단, 어떤 식도 선언하지 않으면 무한루프가 된다.
for(;;) {...}
for문 내에 for문을 중첩해 사용할 수 있다.
for(var i = 1; i <= 6; i++){
for(var j = 1; j <= 6; j++){
if(i * j === 6) console.log(`[${i}, ${j}]`);
}
}
/* 실행결과
[1, 6]
[2, 3]
[3, 2]
[6, 1]
*/
while문
조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. for문은 반복 횟수가 명확할 때, while문은 반복 횟수가 불명확할 때 주로 사용한다.
var count = 0;
while(count < 3) {
console.log(count); //0 1 2
count++;
}
조건식의 평가 결과가 언제나 참이면 무한루프가 된다. 탈출을 위해서는 if문으로 조건을 만들고 break문을 사용해야한다.
var count = 0;
while(true){
console.log(count);
count++;
if(count === 3) break;
}
do...while문
do...while문은 코드 블록을 먼저 실행하고 조건식을 평가한다. 코드 블록은 무조건 한 번 이상 실행할 때 사용한다.
var count = 0;
do{
console.log(count);
count++;
} while(count < 3);