삼항연산자: 조건문 한 줄로 끝내기

hyorr·2022년 6월 3일
0

javascript

목록 보기
2/2

먼저 간단한 조건문으로 예를 들어보자

//a가 양수이면 양수, 음수라면 음수라고 console에 찍히는 조건식
let a = 3;
if (a >= 0) {
  console.log("양수");
} else {
  console.log("음수");
}

해당 코드를 삼항연산자를 이용하여 간단하게 만들면

let a = 3;
a>=0 ? console.log("양수") : console.log("음수")

삼항연산자 만드는 법
1. 조건식을 쓴다
2. ? 를 쓴다 (앞이 조건식이라는 것을 명시하기 위해 사용)
3. ? 뒤에는 참일 때 수행할 식을 작성 후 : 을 쓰고 뒤에 거짓일 때 수행할 식 작성 후 ; 로 마무리

또 다른 예

주어진 배열이 비어있는 지 확인하고 비어있다면 콘솔에 빈배열이라고 출력하고 그렇지 않으면 비어있지 않다고 출력

일반적으로 조건문 사용하는 식

let a = [];

if (a.length === 0) {
  //배열의 길이가 0이면 빈 배열이라는 의미
  console.log("빈 배열");
} else {
  console.log("안 빈 배열");
}

삼항연산자 사용하는 식

let a = [];

a.length === 0 ? console.log("빈배열") : console.log("안 빈 배열");

값을 참일 때와 거짓일 때를 구분하여 반환하도록 하는 식으로 바꿔보자

let a = [];

const arrayStatus = a.length === 0 ? "빈배열" : "안 빈 배열";
console.log(arrayStatus);

왼쪽에 대입 연산자를 이용해서 결과를 값으로 받아볼 수 있다.

삼항연산자 smart 하게 사용하기!
1. truthy와 falsy 사용하여 주어진 값이 null이거나 undefined이 아닌 지 판단하는 프로그램

let a;
const result = a ? true : false;
console.log(result);
// a가 undefined라서 false
  1. 삼항연산자를 중첩해서 사용 ex. 학점 계산 프로그램
// TODO. 학점계산프로그램
// 90점 이상 A+
// 50점 이상 B-
// 둘다 아니면 F

let score = 100;

score >= 90
  ? console.log("A+")
  : score >= 50
  ? console.log("B-")
  : console.log("F");
//가독성이 떨어지기 때문에 삼항연산자를 중첩으로 사용할 때는 if 조건문을 사용하는 게 더 좋음
// TODO. 학점계산프로그램
// 90점 이상 A+
// 50점 이상 B-
// 둘다 아니면 F

let score = 100;

// score >= 90
//   ? console.log("A+")
//   : score >= 50
//   ? console.log("B-")
//   : console.log("F");
//가독성이 떨어지기 때문에 삼항연산자를 중첩으로 사용할 때는 if 조건문을 사용하는 게 더 좋음

if (score >= 90) {
  console.log("A+");
} else if (score >= 50) {
  console.log("B-");
} else {
  console.log("F");
}
profile
느려도 바른 방향으로 가자!

0개의 댓글