조건문

hanyoko·2023년 6월 19일
0

JAVASCRIPT

목록 보기
8/32
post-thumbnail

조건문

어떠한 조건에 따라 논리 구조를 분기시키는 역할.
표현식의 참, 거짓 여부에 따라 어떠한 문장은 실행시키고 어떠한 문장은 건너뛴다.

if 문

조건문의 기본은 if 문

if문은 기본적으로 아래처럼 구성된다.

if (표현식) {
  // 표현식의 값이 true일 경우 실행할 구문(Statement)
}

if 뒤에 괄호를 이용해 표현식을 작성한다.
표현식은 Boolean 값으로 표현될 수 있어야 한다. 즉, 표현식의 결과가 true이거나 false. 만약, 표현식의 결과가 true라면 중괄호 ({ }) 내부 (블록 내부) 의 구문이 실행.
만약 표현식의 결과가 false라면 중괄호 내부의 구문은 실행되지 않는다.

let score = 85;

if (score > 60) {
  console.log("Pass");
}

위 예제를 실행해 보면 콘솔에 Pass가 찍히는 것을 확인할 수 있다.
만약 score가 60이라면, 표현식의 값이 false 가 되므로 중괄호 내부의 문장은 실행되지 않고 건너뛰게 된다. 예제에서는 다음 문장이 없으니 프로그램이 종료되고. 콘솔에는 아무것도 찍히지 않는다.


else 문

if 문은 조건문의 값이 true 일 경우에만 중괄호 내부의 문장이 실행.
만약 false 인 경우에도 어떠한 값이 실행되게 하려면 else 구문을 함께 작성해야한다.

if (표현식) {
  // 표현식의 값이 true일 경우 실행할 구문(Statement)
} else {
  // false 일 경우 실행될 구문
}

표현식이 true 이면 if의 중괄호 부분이 실행되고, false 라면 else 이후의 중괄호 부분이 실행.
즉, 조건의 참과 거짓에 따라 실행될 문장을 분기했다.

예제

let score = 60;

if (score > 60) {
  console.log("Pass");
} else {
  console.log("Fail");
}

점수에 따라 합격 불합격 여부를 판정하는 프로그램.
결과는 Fail


else if 문

점수에 따라 합격 불합격을 판정하는 것이 아니라, 점수에 따라 A 부터 F 학점까지 학점을 출력하려면 else if를 사용해 조건을 넣어준다.

let score = 61;

if (score > 90) {
  console.log("A");
} else if (score > 80) {
  console.log("B");
} else if (score > 70) {
  console.log("C");
} else if (score > 60) {
  console.log("D");
} else {
  console.log("F");
}

D가 console 창에 출력

예제

예를 들어 출석률이 90% 이상이어야만 A를 받을 수 있으려면 어떻게 할까요 ?

let score = 100;
let attendancePercent = 89;

if (score > 90 && attendancePercent >= 90) {
  console.log("A");
} else if (score > 80) {
  console.log("B");
} else if (score > 70) {
  console.log("C");
} else if (score > 60) {
  console.log("D");
} else {
  console.log("F");
}

switch 문

if…else if 문은 경우에 따라 switch 문으로 깔끔하게 표현할 수도 있다.

switch (표현식) {
  case 1:
    //...
    break;
  case 2:
    //...
    break;
  default:
    //...
    break;
}

switch 다음에 오는 괄호에는 반환값이 있는 어떠한 표현식이든 올 수 있다.
switch 문의 블록 내부는 여러개의 case문과 하나의 default문으로 구성되며, 괄호 내부의 표현식 값에 따라 조건에 부합하는 case문이 실행된다.

만약 case 문에 break 문이 없으면 switch 문이 종료되지 않고 다음 case문을 실행시킨다.

예제

let today = new Date();
let day = today.getDay();
console.log(day); //일요일부터 토요일까지 0~7의 숫자로 나타나진다.
       
switch(day){
	case 0:
	day = "일요일";
	break;
	case 1:
	day = "월요일";
	break;
	case 2:
	day = "월요일"
	break;
	case 3:
	day = "화요일";
	break;
	case 4:
	day = "수요일";
	break;
	case 5:
	day = "목요일"
	break;
	case 6:
	day = "금요일";
	break;
	default: //받아오는 값이 위의 case에 해당하지 않는 값일 때 아래를 반환한다.
	day = "토요일";
	break;
}
console.log(day); //숫자가 아닌 n요일로 작성된다.

삼항 연산자

if…else 문의 표현식으로, 주어진 조건식의 참 거짓에 따라 값을 반환

조건부 연산자

(조건식) ? 실행구문1 : 실행구문2;

예시

let num = 42;
let result = (num % 2 === 0) ? "even" : "odd";
console.log(result);  // 'even'

? 이전의 조건식이 참일 경우, : 를 기준으로 좌측의 값을 반환하고, 거짓일 경우는 : 를 기준으로 우측의 값을 반환.

이렇게 삼항연산자를 사용하면 조건문 코드의 길이를 줄이는데 도움이 된다.

0개의 댓글