코드는 위에서 아래 방향으로 순차적으로 실행이 된다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어 할 수가 있다. 제어문
에는 조건문
과 반복문
두가지로 나뉜다.
특정한 조건 일때만 실행된다.
if(조건식) {
//조건식이 참이면 이 코드블록이 실행된다
} else {
//조건식이 거짓이면 이 코드블록이 실행된다
}
if(조건식1) {
//조건식1이 참이면 이 코드블록이 실행된다
} else if(조건식2) {
//조건식 2가 참이면 이 코드블록이 실행된다
} else {
//조건식1과 조건식2가 모두 거짓이면 이 코드블록이 실행된다
}
let fruits = 'orange';
if (fruits === 'apple') {
console.log(1);
} else {
console.log(2);
}
조건식 ? 표현식 : 표현식
조건식이 참이면 첫번째 표현식 실행이 된다.
조건식이 거짓이면 두번째 표현식 실행이 된다.
fruits === 'apple' ? console.log(1) : console.log(2);
좀 더 간결하게 표현하는 방법도 있다.
let result = fruits === 'apple' ? 1 : 2;
//삼항 조건 연산자 표현식은 값처럼 사용할 수 있기 때문에 변수에 할당할수 있다.
switch (표현식) {case 표현식1: 실행될문}
정해진 범위안의 값에 대해 특정한 일을 해야하는 경우 사용할 수 있다.
const month = 5;
let monthName;
switch (month) {
case 1: monthName = 'January';
break;
case 2: monthName = 'February';
break;
case 3: monthName = 'March';
break;
case 4: monthName = 'April';
break;
case 5: monthName = 'May';
break;
case 6: monthName = 'June';
break;
}
console.log(month.Name); // May
특정한 일을 반복적으로 실행한다.
for (변수선언문; 조건식; 증감식) { }
실행순서
1.변수선언문
2.조거식의 값이 참이면 { } 코드블럭을 수행
3.증감식을 수행
4.조건식이 거짓이 될때까지 2번과 3번을 반복함
for(let i = 0; i<5; i++) {
console.log(i); //0 1 2 3 4
}
for(let i = 0; i<5; i = i + 2) {
console.log(i); //0 2 4
}
중첩 for문
for(let i = 1; i <= 5; i++){
for(let j = 1; j <= 5; j++){
console.log("hellow"+i+j)
}
}
첫번째 코드블록 for문이 참이면 두번째 코드블록 for문으로 넘어와 실행이 된다. 그 후, 다시 두번째 for문이 거짓일때까지 계속 실행되다가 거짓이 뜨면 그때 다시 첫번째 코드블록 for문으로 이동해서 실행이 된다. 이러한 과정이 반복된다.
결국 결과 값은 아래처럼 나오게 된다.
주의점!! 조건이 무한루프가 되지않도록 하는것이 중요하다.
반복문 제어: continue, break;
조건이 거짓이 될때까지 { } 코드를 반복 실행한다
let num = 5;
while (num >= 0) {
console.log(num);
num--;
}
//5 4 3 2 1 0
let isActive = true;
let i = 0;
//무한루프
while (isActive) {
console.log('여기있어!');
//i가 20이되면 코드블록을 탈출한다
if (i === 20) {
break;
}
i++;
}
do...while문은 코드 블록을 먼저 실행하고 조건식을 평간한다. 코드 블록이 무조건 한 번 이상 실행이 된다.
let isActive = false;
let i = 0;
//무한루프
do {
console.log('do-while 여기있어!');
} while (isActive);
//do-while 여기있어! 조건이 안맞아도 딱 한번은 출력이 된다