항해99(온보딩커리큘럼)

온보딩 커리큘럼 [조건문(if, switch)]

stella0905 2023. 3. 7. 23:11

if문

if(...)문은 괄호 안에 들어가는 조건을 평가하는데, 그 결과가 true이면 코드 블록이 실행됩니다.

if (…) 문은 괄호 안의 표현식을 평가하고 그 결과를 불린값으로 변환합니다.

형 변환 챕터에서 배운 형 변환 규칙을 잠시 상기해 봅시다.
  • 숫자 0, 빈 문자열"", null, undefined, NaN은 불린형으로 변환 시 모두 false가 됩니다. 이런 값들은 ‘falsy(거짓 같은)’ 값이라고 부릅니다.
  • 이 외의 값은 불린형으로 변환시 true가 되므로 ‘truthy(참 같은)’ 값이라고 부릅니다.

조건부 연산자 '?'

let accessAllowed;
let age = prompt('나이를 입력해 주세요.', '');

if (age > 18) {
  accessAllowed = true;
} else {
  accessAllowed = false;
}

alert(accessAllowed);
let result = condition ? value1 : value2;

평가 대상인 condition이 truthy라면 value1이, 그렇지 않으면 value2가 반환됩니다.

 

<확인문제>

1. 다음 예제 중에서 ‘참입니다’를 출력하는 것은 몇 번 일까요?

     1. 

const x = 1
if(x > 4){
  console.log('참입니다.')
}

    2. 

const x = 0
if(x > 4){
  console.log('참입니다.')
}

   3. 

const x = 10
if(x > 4){
  console.log('참입니다.')
}

2. 사용자로부터 숫자 2개를 입력받아 첫번째 입력받은 숫자가 큰지. 두번째 입력받은 숫자가 큰지를 구하는 프로그램을 다음 빈칸을 채워 완성해보세요.

const a = Number(prompt('첫 번째 숫자', ''))
const b = Number(prompt('두 번째 숫자', ''))

if (a > b) {
  alert('첫 번째로 입력한 숫자가 더 큽니다.')
} else if (a === b) {
  alert('두 숫자가 같습니다.')
} else {
  alert('두 번째로 입력한 숫자가 더 큽니다.')
}

3. 중첩 조건문은 2장에서 배운 논리 연산자를 적용해 하나의 if 조건문으로 만들 수 있습니다. 빈칸에 어떤 논리 연산자가 들어가야 할까요?

if (x > 10){
  if(x<10){'조건에 맞습니다.'}
}
if(x > 10 && x <20){
  console.log('조건에 맞습니다.')
}

4. 사용자에게 숫자를 입력받아 양수, 0, 음수를 구분하는 프로그램을 만들어보세요.

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

if (a > 0) {
  console.log('양수')
} else if (a === 0) {
  console.log('0')
} else {
  console.log('음수')
}

5. 사용자에게 숫자를 입력받아 홀수와 짝수를 구분하는 프로그램을 만들어보세요.

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

if (a % 2 === 0) {
  console.log('짝수')
} else {
  console.log('홀수')
}

6. 현재가 몇 월인지 확인하고, 계절을 구분하는 프로그램을 만들어보세요.

const a = Number(prompt('월을 입력해주세요.', ''))

if (3 < a && a < 7) {
  console.log('봄입니다.')
} else if (6 < a && a < 9) {
  console.log('여름입니다.')
} else if (8 < a && a < 12) {
  console.log('가을입니다.')
} else {
  console.log('겨울입니다.')
}

 

 

switch

다음 코드가 어떤 형태로 실행될지 예측해보세요.

const result = (100 > 200) 
? prompt('값을 입력해주세요.','') 
: confirm('버튼을 클릭해주세요')
alert(result)

<실행결과>

'버튼을 클릭해주세요' 팝업창이 뜬다.

 

2. [누적 예제 : 태어난 연도를 입력받아 띠 출력하기] 예제(152쪽)에서 if 조건문을 switch 조건문으로 변경해서 구현해보세요.

const rawInput = prompt('태어난 해를 입력해주세요,', '')
const year = Number(rawInput)
const e = year % 12

let result
switch (e) {
  case 0:
    result = '원숭이'
    break;
  case 1:
    result = '닭'
    break;
  case 2:
    result = '개'
    break;
  case 3:
    result = '돼지'
    break;
  case 4:
    result = '쥐'
    break;
  case 5:
    result = '소'
    break;
  case 6:
    result = '호랑이'
    break;
  case 7:
    result = '토끼'
    break;
  case 8:
    result = '용'
    break;
  case 9:
    result = '뱀'
    break;
  case 10:
    result = '말'
    break;
  default:
    result = '양'
    break;
}
console.log(`${year}년에 태어났다면 ${result}띠 입니다.`)

3. ‘태어난 연도를 입력받아 띠 출력하기’ 예제(152쪽)에서 동물 이름을 쥐부터 ‘자,축,인,묘,진,사,오,미,신,유,술,해’로 변경하고, 입력한 연도의 ‘갑,을,병,정,무,기,경,신,임,계’를 계산합니다. 이둘을 합쳐 다음과 같이 출력하는 프로그램을 만들어보세요.

const rawInput = prompt('태어난 해를 입력해주세요,', '')
const year = Number(rawInput)
const e = '경,신,임,계,갑,을,병,정,무,기'.split(',')
const tti = '신,유,술,해,자,축,인,묘,진,사,오,미'.split(',')

console.log(`${year}년은 ${e[year % 10]}${tti[year % 12]}년 입니다.`)
  1. 다음 중에서 switch조건문과 직접적인 관련이 없는 키워드를 고르세요.
    1. switch
    2. break
    3. default
    4. else
  2. 다음 중에서 다른 실행 결과를 내는 코드를 고르세요.
    1. true ? alert(’출력A’): alert(’출력B’)
    2. false ? alert(’출력B’): alert(’출력A’)
    3. true || alert(’출력A’)
    4. true && alert(’출력A’)

 

<기술매니저님과의 시간> 

 

계산식이 필요하면 출력하는데에 계산식을 넣지말고 변수에 할당하는 습관을 가져야 한다. 

변수는 직관적으로 남이 봤을때도 이해할 수 있게 적어야한다.

 

let a = "1";

+a === 1
+a === Number("1")

문자열앞에 오는 + 는 문자열을 숫자열로 바꾸게 한다. Number("")이랑 같다.

 

처음엔 공부하고있던 속도가 달라서 혼자서 공부하는게 나을지 고민이 많았는데 오늘 스터디분들과 기초부터 다시 

공부하면서 알고는있었지만 몰랐던 세세한부분도 공부하다보니 도움이 많이 됬었다.

오늘은 기술매니저님과 공부하면서 궁금했던거라던가 안풀렸던걸 얘기나눴는데 혼자서 공부하는것보단

현재 업무를 하고있는분에게 현실적인 질문을 하면서 답변을 얻고 하는게 흥미로웠다.