프로그램 또는 어플리케이션은 코드를 작성한대로 순차적으로 코드가 실행이된다. 이 실행의 순서를 개발자가 제어할 수 있도록 하는 것이 제어문이다. 제어문에는 조건문과 반복문이 있다.
let fruit = 'orange';
if(fruit === 'apple') {
console.log('🍎');
} else if (fruit === 'orange') {
console.log('🍊');
} else {
console.log('😭');
} // 🍊 출력
let fruit = 'apple';
fruit === 'apple' ? console.log('🍎') : console.log('😭');
// 조건이 참일 경우 🍎출력, 거짓일 경우 😭출력
let imoji = fruit === 'apple' ? '🍎' : '😭';
console.log(imoji); // 🍎
// imoji의 변수에 조건이 참일 경우 🍎 할당, 거짓일 경우 😭 할당
if else if else ... else 로 반복되는 if문과 달리 정해진 범위 안의 값에 대해 특정한 일을 해야하는 경우 switch문을 사용한다
let day = 6; // 0:월요일, 1:화요일... 6:일요일
let dayName;
if (day === 0) {
dayName = '월요일';
} else if (day === 1) {
dayName = '화요일';
} else if (day === 2) {
dayName = '수요일';
} else if (day === 3) {
dayName = '목요일';
} else if (day === 4) {
dayName = '금요일';
} else if (day === 5) {
dayName = '토요일';
} else if (day === 6) {
dayName = '일요일';
}
// 이런 조건에서 if문으로 코드를 작성하면 지저분하고 복잡해보임
// switch문 사용시
switch (day) {
case 0:
dayName = '월요일';
break;
case 1:
dayName = '화요일';
break;
case 2:
dayName = '수요일';
break;
case 3:
dayName = '목요일';
break;
case 4:
dayName = '금요일';
break;
case 5:
dayName = '토요일';
break;
case 6:
dayName = '일요일';
break;
default:
console.log('해당하는 요일이 없음'); // if문의 else와 같은 역할
}
// if문 보다 더 보기 쉽게 작성 가능하다.
// break 사용의 다른 예
let condition = 'good'; // okay, good -> 좋음, bad -> 나쁨
let text;
switch (condition) {
case 'okay': // case별로 제어를 하기 위해 break를 검
case 'good':
text = '좋음';
break;
case 'bad':
text = '나쁨';
break;
}
실행순서
for (let i = 0; i < 5; i++) {
console.log(i);
} // 0,1,2,3,4 출력
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
console.log(i,j);
}
} // 0, 0
// 0, 1
// 0, 2
// .... 중첩해서 사용가능
// 반복문 제어
// break - for과 while의 루프에서 벗어나기 위해 사용된다.
// 제어흐름을 그 즉시 중단하고 빠져나온다.
// continue - 제어흐름(반복)을 유지한 상태에서 코드의 실행만 건너뛰는
// 역할을 한다. (while문 다음 반복을 시작)
조건이 false가 될 때까지 {} 코드를 반복 실행
let num = 5;
while (num >= 0) {
console.log(num);
num--;
} // 5,4,3,2,1,0 출력
do {} while ()
// while은 조건에 맞으면 루프가 실행되지만 do-while은 조건에 상관없이 무조건 한 번 실행되고 나서 루프가 시작된다.