0809 TIL

기멜·2021년 8월 9일
0

자바스크립트 독학

목록 보기
7/44

if문 + else if문 + else문

-학점계산기

const score = 80;
if (score >= 90) { // 90점 이상
  console.log('A+');
} else if (score >= 80) { // 90점 미만 80점 이상
  console.log('A')
} else if (score >= 70) { // 80점 미만 70점 이상
  console.log('B+')
}else if (score >= 60) { // 70점 미만 60점 이상
  console.log('B')
}else { //60점 미만
  console.log('F')
}

결과는 'A'

if문 안에 또 if문

let first = true;
let second = false;

if (first){
  console.log('첫 번째 조건 충족!');
  if (second) {
    console.log('두 번째 조건도 충족!');
  } else {
    console.log('두 번째 조건은 불충족!');
  }
}else {
  console.log('첫 번째 조건 불충족!')
}

코드해석: 위에서부터 내려오고 왼쪽에서 오른쪽으로 읽는다.
first는 ture라서 '첫번째 조건 충족!' 이라는 결과가 나오고
second는 false라서 '두 번째 조건은 불충족!' 이라는 결과가 나온다. 이런식으로 if문(조건문) 안에 또 다른 if문(조건문)을 쓸 수가 있다.
그런데 if문은 중첩을 줄이는 게 좋다.

위에 코드를 간결하게 재코딩

let first = true;
let second = false;
if (first && second) { //first와 second 모두 true 였다면
  console.log('첫 번째 조건 충족!')
  console.log('두 번째 조건도 충족!')
}else if (first) { // first만 true
  console.log('첫 번째 조건 충족!')
  console.log('두 번째 조건은 불충족!')
}else { //둘 다 false
  console.log('첫 번째 조건 불충족!')
}

코드해석: 위에서부터 내려오게 되는데 if문에 설정된 first &&(그리고) second는 true 그리고 false 라 조건 충족이 안된다. 두번째로 else if문인 first는 true라 조건 충족이 되기때문에 결과로 '첫 번째 조건 충족!' 과 '두 번째 조건은 불충족!' 이 나타난다.

switch문

switch문의 기본 형식

switch (조건식) {
  case 비교조건식:
    동작문
}

-switch 문에는 조건식 두개가 사용됩니다. (조건식)과 비교 조건식 값이 일치(===) 하면 해당 동작문이 실행됩니다.
보통 조건식에 변수를 넣고, 비교 조건식에는 변수와 비교할 값을 넣습니다.

let value = 'B';
switch (value) {
  case 'A':
    console.log('A');
  case 'B':
    console.log('B');
  case 'C':
    console.log('C');
}

코드해석: 결과로 B만 출력될 것이라고 예상했지만, 실제로는 B와 C가 모두 출력 됩니다. switch문은 일치하는 case를 발견하면 일치 여부와 상관없이 그 아래 case 들의 동작문을 모두 실행합니다. 따라서 원하는 결과만 얻으려면 수동으로 case에서 빠져나와야 합니다. 이때 break문이 사용됩니다.

let value = 'B';
switch (value) {
  case 'A':
    console.log('A');
    break;
  case 'B':
    console.log('B');
    break;
  case 'C':
    console.log('C');
    break;
}

이런식으로 break문을 써야지 'B'값만 나오게 된다.

  • default문
    else와 비슷한데 어느 조건도 충족하지 않았을 때 나오게 끔 하는
let value = 'F';
switch (value) {
  case 'A':
    console.log('A');
    break;
  case 'B':
    console.log('B');
    break;
  case 'C':
    console.log('C');
    break;
  default:
    console.log('아무것도 일치하지 않음');
}

else는 if나 else if 뒤에만 나오지만, default는 어디에나 위치할 수 있습니다.

let fruit = '사과'
switch (fruit) {
  default:
    console.log('뭔지 모르겠습니다!');
    break;
  case '사과':
    console.log('사과입니다!');
    break;
  case '배':
    console.log('배입니다!');
    break;
  case '포도':
    console.log('포도입니다!');
    break;
}

결과는 '사과입니다!'

profile
프론트엔드 개발자를 꿈꾸는 도화지 위를 달리는 여자

0개의 댓글