원하는 결과를 얻기 위해 프로그램의 흐름을 제어해야만 하고, 이 때 사용하는 명령문을 제어문이라고 한다. 제어문은 결과 도출을 위해 논리적 판단을 하는 역할을 한다. 이 논리적 판단은, 조건을 비교하거나 일정 구간을 반복시키게끔 하는 명령문인 조건문, 반복문을 사용한다.
ture
또는 false
로 평가되는 값들
if (true)
if ({})
if ([])
if (' ') // 공백
if ('0') // 문자열 안의 0
if ("0") // 문자열 안의 0
if (12n)
if (3.14) // 양수로 된 숫자
if (-3.14) // 음수로 된 숫자
if (Infinity)
if (-Infinity)
console.log(999 == true, ' ' == true, {} == true);
false 출력
if (false)
if (0)
if (-0)
if ('') // 공백이 없는 문자열 표시
if (null)
if (undefined)
if (NaN)
console.log(0 == false, '' == false)
true 출력
if (조건식) {
조건식의 결과가 참일 경우 실행 할 코드
}
const age = true;
function sayAge(age) {
if ( age ) {
console.log("제 나이는 " + age + "살 입니다.");
}
}
sayAge(25) // 제 나이는 25살 입니다. 출력
if문은 조건식의 결과가 참 true
이면 주어진 코드를 실행하고, 거짓 false
이면 아무것도 실행하지 않는다.
if (조건식) {
조건식의 결과가 참일 경우 실행할 코드
} else {
조건식의 결과가 거짓일 경우 실행할 코드
}
const age = true;
function sayAge(age) {
if ( age < 20 ) {
console.log("제 나이는 " + age + "살 입니다.");
} else {
console.log("제 나이는 비밀입니다.");
}
}
sayAge(18) // 제 나이는 18살 입니다. 출력
sayAge(25) // 제 나이는 비밀입니다. 출력
if...else문은 가장 일반적인 형태의 조건문이다.
조건식의 결과가 참 true
이면 처음으로 주어진 코드를 실행하고, 거짓 false
이면 else 뒤의 코드를 실행한다.
if (조건식1) {
조건식1의 결과가 참일 경우 실행할 코드
} else if (조건식2) {
조건식2의 결과가 참일 경우 실행할 코드
} else {
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 경우 실행할 코드
}
const age = true;
function sayAge(age) {
if ( age < 20 ) {
console.log("제 나이는 " + age + "살 입니다.");
} else if ( 20 <= age && age <= 35 ) {
console.log("제 나이는 비밀입니다.");
} else {
console.log("먹을만큼 먹었답니다.^^");
}
}
sayAge(18) // 제 나이는 18살 입니다. 출력
sayAge(25) // 제 나이는 비밀입니다. 출력
sayAge(38) // 먹을만큼 먹었답니다.^^ 출력
if...else if문은 여러 조건에 따른 명령을 실행시켜야 할 때 사용하는 조건문이다.
조건식을 여러개 명시할 수 있기 때문에 중첩된 if문을 간결하게 표현할 수 있다.
첫번째 if문의 조건식의 결과가 참 true
이면 첫번째로 주어진 코드를 실행하고,
두번째 if문의 조건식의 결과가 참 true
이면 두번째로 주어진 코드를 실행하고,
두 조건식이 모두 거짓 false
이면 마지막으로 주어진 코드를 실행한다.
이때, else if문은 여러 번 사용해도 좋지만, if문과 else문은 단 한번만 사용할 수 있다.
조건식 ? 반환값1 : 반환값2
let x = ture;
let y = x ? '참입니다요' : '거짓입니다요'; // 삼항 연산자 사용
console.log(y)
// '참입니다요' 출력
if...else
조건문의 대체제로 간편하게 쓰인다.연산자 | 형태 | 설명 |
---|---|---|
삼항연산자 | 조건문 ? 참실행문 : 거짓실행문 | 조건문이 참일 경우 첫번째 표현식 실행 |
조건문이 거짓일 경우 두번째 표현식 실행 |
const x = 22;
if (x % 4) {
if (x % 2) {
console.log('홀수입니다.');
} else {
console.log('짝수입니다.');
}
} else {
console.log('4의 배수입니다.');
}
function testNum () {
const x = 22;
if (x % 2) {
console.log('홀수입니다.');
return;
}
if (x % 4) {
console.log('짝수입니다.');
return;
}
console.log('4의 배수입니다.');
}
testNum();
중첩된 if문을 간결하게 사용하는 방식이다. 함수에서 사용하는 return문은 함수 실행을 완전히 종료시키는 역할을 한다. 함수에서의 return문은 조건문의 else문과 비슷한 맥락으로 사용되기 때문에 전체적으로 가독성 있는 코드를 위해서라면 else문을 남발하기 보단 return문으로 함수 실행을 종료시키자 !
switch (조건값) {
case 값1 : 조건문의 조건값이 값1일 경우, 실행 할 코드
break;
case 값2 : 조건문의 조건값이 값2일 경우, 실행 할 코드
break;
...
default : 조건문의 조건값이 case문의 값에 해당하지 않는 경우, 실행 할 코드
}
const fingersCount = 2;
switch (fingersCount) {
// 주어진 조건값에 대한 실행 위치가 2, 0, 5 순으로 이동됨
case 2:
console.log('가위');
break;
case 0:
console.log('바위');
break;
case 5:
console.log('보');
break;
default:
console.log('무효');
}
// '가위' 출력
const month = 1;
let season = '';
switch (month) {
case 1: case 2: case 3: // case문은 여러번 사용이 가능하다.
season = '1분기'; break;
case 4: case 5: case 6:
season = '2분기'; break;
case 7: case 8: case 9:
season = '3분기'; break;
case 10: case 11: case 12:
season = '4분기'; break;
default:
season = '잘못된 월입니다.';
}
console.log(season);