본문 바로가기

Development/JavaScript

JS 기초_2(조건문)

항해99 14기 온보딩 커리큘럼 2일차

 

if 조건문

  • if 조건문은 조건에 따라 코드를 실행하거나 실행하지 않도록 하기 위해 사용하는 구문이다
  • else 구문은 if 조건문 뒤에 사용하며, if 조건문이 거짓일 때 사용한다
  • 중첩 조건문은 조건문을 중첩해서 사용하는 경우를 의미한다
  • if else if 조건문은 중첩 조건문에서 중괄호를 생략한 형태로, 겹치지 않는 3가지 이상의 조건으로 나눌 때 사용한다

Q1. 사용자에게 숫자를 입력받아 양수, 0, 음수를 구분하는 프로그램 만들기

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

        if (a > 0) {
            alert('양수입니다')
        } else if (a < 0) {
            alert('음수입니다')
        } else {
            alert('0 입니다.')
        }

 

Q2. 사용자에게 숫자를 입력받아 홀수와 짝수를 구분하는 프로그램을 만들기

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

        if (a % 2 === 0) {
            alert('짝수입니다')
        } else alert('홀수입니다')

 

Q3. 현재가 몇 월인지 확인하고, 계절을 구분하는 프로그램 만들기

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

        if (3 <= a && a <= 5) {
            alert('봄입니다.')
        } else if (6 <= a && a <= 8) {
            alert('여름입니다')
        } else if (9 <= a && a <= 11) {
            alert('가을입니다')
        } else {
            alert('겨울입니다')
        }
        
        /*  다항 연산자의 이해가 없어서 그런지 조건을 2 < a < 6 이런식으로 입력했을 때는 안됐다가
        논리 곱 연산자로 바꾸니 정상 작동 하였다 */

 

 

switch 조건문과 짧은 조건문

  • switch 조건문은 값에 따라서 조건 분기를 걸어주는 조건문이다
    조건분기란 코드가 실행되는 흐름을 변경하는 것을 말한다
  • 조건부 연산자는 A ? B : C와 같은 형태로 피연산자 3개를 갖는 연산자이고 조건 분기에 사용할 수 있다
  • 짧은 조건문은 논리 연산자의 특이한 성질을 이용해서 조건 분기에 활용하는 코드이다
더보기
더보기

조건부 연산자

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

자바스크립트에서 항을 3개 갖는 연산자는 조건부 연산자가 유일해서 삼항 연산자라고 부르기도 한다.

불 표현식 ? 참일 때의 결과 : 거짓일 때의 결과
result = (number >= 0) ? '0 이상의 숫자입니다.' : '0보다 작은 숫자입니다.'

 

 

Q1. switch 조건문을 이용해 태어난 연도를 입력받아 띠 출력하기

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

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

 

Q2. 위의 문제에서 동물 이름을 자축인묘신유술해로 변경하고 입력한 연도를 갑을병정무기경신임계로 계산하기

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

let result1
switch (true) {
    case f === 0:
        {result1 = '경'}
    case f === 1:
        {result1 = '신'}
    case f === 2:
        {result1 = '임'}
    case f === 3:
        {result1 = '계'}
    case f === 4:
        {result1 = '갑'}
    case f === 5:
        {result1 = '을'}
    case f === 6:
        {result1 = '병'}
    case f === 7:
        {result1 = '정'}
    case f === 8:
        {result1 = '무'}
    case f === 9:
        {result1 = '기'}
}


let result
switch (true) {
    case e === 0: 
        {result = '신'}
        break
    case e === 1: 
        {result = '유'}
        break
    case e === 2: 
        {result = '술'}
        break
    case e === 3: 
        {result = '해'}
        break
    case e === 4: 
        {result = '자'}
        break
    case e === 5: 
        {result = '축'}
        break
    case e === 6: 
        {result = '인'}
        break
    case e === 7: 
        {result = '묘'}
        break
    case e === 8: 
        {result = '진'}
        break
    case e === 9: 
        {result = '사'}
        break
    case e === 10: 
        {result = '오'}
        break
    case e === 11: 
        {result = '미'}
        break
}
alert(`${year}년에 태어났다면 ${result1}${result} 년입니다.`)

//상수 e와 f를 선언하지 않고 switch()에 넣은 다음 case 결과값을 넣어도 된다.

 

 

보충학습

switch 조건문의 기본 형태(default 키워드는 생략할 수 있음)

switch (자료) {
	case 조건A:    //조건 A가 참일 때 실행
    	break	  //종료
    case 조건B:   //조건 B가 참일 때 실행
    	break	 //종료
    default:	//생략 가능
    	break	//종료
}

 

짧은 조건문

논리합 연산자 사용의 경우 뒤에 어떠한 값이 들어가도 항상 참이다

자바스크립트는 참 또는 거짓이 확실한 경우 추가 연산을 진행하지 않기 때문에

논리합 연산자의 좌변이 참이면 우변을 실행하지 않는다.

불 표현식 || 불 표현식이 거짓일 때 실행할 문장

 

논리곱 연산자 사용의 경우 양변이 모두 참일 때만 참이기 때문에 좌변이 거짓이면 우변을 실행하지 않는다.

결과가 거짓인 불 표현식 && 불 표현식이 참일 때 실행할 문장

 

'Development > JavaScript' 카테고리의 다른 글

JS기초_4.2(함수 고급)  (0) 2023.03.09
JS기초_4.1(함수기초)  (0) 2023.03.09
JS기초_3.2(반복문)  (0) 2023.03.09
JS 기초_3.1(배열)  (4) 2023.03.08
JS 기초_1  (0) 2023.03.07