JavaScript - 조건문#2

김두비·2022년 5월 10일

JavaScript입문

목록 보기
8/10

if, else 와 함께 else if {}도 사용 할 수 있다

else if {}

if에 해당하지 않을 때

else if 를 이용하면 논리적으로 구분된 조건을 추가해서
여러조건에 해당되는 경우를 설정할 수 있다

const n = 15;

if (n % 3 === 0) { //n을 3으로 나눈몫이 0이라면
  console.log('n은 3의 배수 입니다');
} else if (n % 5 === 0) { //3의 배수가 아닌 경우 5의 배수일 경우
  console.log('n은 5의 배수 입니다');
} else {
  console.log('n은 3의 배수도 아니고 5의 배수도 아닙니다');
}

만약 n이 3의 배수이면서, 5의 배수라면 출력되는 값은 첫번 째, 'n은 3의 배수입니다' 에서 걸리게된다
하지만 3의 배수이면서 5의 배수라면 두번 째 'n은 5의 배수 입니다'에 걸린다

3과 5는 15의 배수이기도 하다

if (n % 3 === 0 && n % 5 === 0) {
  console.log('n 은 15의 배수입니다');
}
if (n % 3 === 0 && n % 5 === 0) {
  console.log('n 은 15의 배수입니다');
} else if (n % 3 === 0) {
  console.log('n은 3의 배수 입니다');
} else if (n % 5 === 0) {
  console.log('n은 5의 배수 입니다');
} else {
  console.log('n은 3의 배수도 아니고 5의 배수도 아닙니다');
}

만약 첫번째 작성된 코드처럼 하면 의도한게 아니라면 오류가 발생할 수 있다 15인 경우를 따로 빼주었고, 3과 5의 영역을 전혀 겹치지 않는 조건을 원한다면 두번째 로직이 좀 더 맞다

const multipleOfThree = n % 3 === 0; //하나의 Boolean형을 평가하는 평가식이다
const multipleOfFive = n % 5 === 0;

if (multipleOfThree && multipleOfFive) {
  console.log('n 은 15의 배수입니다');
} else if (multipleOfThree) {
  console.log('n은 3의 배수 입니다');
} else if (multipleOfFive) {
  console.log('n은 5의 배수 입니다');
} else {
  console.log('n은 3의 배수도 아니고 5의 배수도 아닙니다');
}
profile
관심과 격려가 필요한 응애 개발자

0개의 댓글