본문 바로가기

프론트엔드/혼자 공부하는 자바스크립트

혼공스 Day 8

Ch 03-2. switch 조건문과 짧은 조건문

switch 조건문

switch (자료) {
  case 조건A:
    break
  case 조건B:
    break
  // default 생략가능
  default:
    break
}

 

👉 홀수와 짝수를 구분하는 switch 조건문 예제 코드

 

 

👉 break 키워드는 switch 조건문이나 반복문을 빠져나가기 위해 사용하는 키워드

 

조건부 연산자

자바스크립트에는 조건문과 비슷한 역할을 하는 조건부 연산자가 있습니다.

불 표현식 ? 참일 때의 결과 : 거짓일 때의 결과

👉 자바스크립트에서 항을 3개 갖는 유일한 조건부 연산자 (삼항 연산자)

 

조건부 연산자

 

짝수와 홀수 구분하기 (누적 예제)

끝자리로 구분하는 방법

<script>
  const input = prompt('정수를 입력해주세요.','')
  const lastNumber = 입력[입력.length-1]
  
  if (lastNumber === "0" ||
    lastNumber === "2" ||
    lastNumber === "4" ||
    lastNumber === "6" ||
    lastNumber === "8") {
    alert(`${input}은 짝수입니다.`)
  } else {
    alert(`$(input)은 홀수입니다.`)
  }
</script>

🤪 input[input.lenghth-1] 부분이 헷갈렸다.

    👉 [input.length]는 내가 입력한 정수의 길이

         input[input.length-1]은 문자열[숫자]를 나타냄

e.g.

[0] [1] [2] [3] [4] 

👉 0부터 시작을 하기 때문에 입력.length-1을 하면 맨 마지막 자리를 나타냄

1 3 5 7 9
[0] [1] [2] [3] [4]

👉 13579 라는 숫자가 입력 되었을 때 마지막 자리 9는 [4]다.

     input[4] 가 마지막 자리를 나타낸다.

     그래서 input[input.length-1]이 9를 출력한다.

 

split으로 문자열을 잘라 사용하기

  <script>
    const rawInput = prompt('태어난 해를 입력해주세요.','')
    const year = Number(rawInput)
    const tti = '원숭이,닭,개,돼지,쥐,소,호랑이,토끼,용,뱀,말,양'.split(',')

    alert(`${year}년에 태어났다면 ${tti[year % 12]} 띠입니다`)
  </script>

👉 '문자열A'.split('문자열B') 메소드

     문자열A를 문자열B로 잘라서 배열을 만들어내는 메소드

     ['원숭이', '닭', '개', ...]라는 배열이 만들어짐

🗒️ 정리

switch 조건문  값에 따라 조건 분기를 걸어주는 조건문

조건부 연산자  A ? B : C의 형태로 피연산자 3개를 갖는 연산자

 

🧐 오늘의 질문 & 생각

const a = Number(prompt('숫자를 입력하세요.', ''))

Q. 위에서 그냥 prompt('숫자를 입력하세요.')하면 안되나? (p.140)

A.

 

const input = prompt('숫자를 입력해주세요.','')
const number = Number(input)

Q. Number()를 나눠서 하는 이유는? (p.146)

    👉  const number = Number(prompt('숫자를 입력해주세요.', '')) 하면 안되나?

A.

 

Q. 문제의 정답을 보면 내 생각과 많이 다르다.

     어떻게 그런 생각들을 할 수 있을까?

A. 다른 사람의 코드를 보며 많이 경험하면 된다.

    컴퓨터에 더 적합한 조건이 있기 때문에, 알고리즘과 자료구조를 공부해야 한다.

 

'프론트엔드 > 혼자 공부하는 자바스크립트' 카테고리의 다른 글

혼공스 Day 9  (0) 2023.01.30
혼공스 Day 7  (0) 2023.01.24
혼공스 Day 6  (0) 2023.01.21
혼공스 Day 5  (0) 2023.01.20
혼공스 Day 4  (0) 2023.01.19