황규진 2024. 7. 10. 13:19

조건문

if 조건문

  • 불 표현식이 true면 중괄호가 감싸고 있는 코드를 실행하고 false면 중괄호가 감싸고 있는 코드를 무시
if( <불 값인 표현식> ) {
}

오전/오후 구분

const date = new Date()
const hour = date.getHours()
<script>
	const date = new Date()
	const hour = date.getHours()
	if( hour < 12 ) {
	alert('오전입니다.')
	}
	if( hour >= 12) {
	alert('오후입니다.')
	}
</script>

If else 문

<script>
	let number = prompt('임의의 정수를 입력하세요:', '예, 10')
	let n = Number(number)
	if ( n % 2 ) {
	alert('홀수 입니다.')
	} else {
	alert('짝수 입니다.')
	}
</script>

 

If ~ else if ~ else 문

<script>
	const date = new Date()
	const hour = date.getHours()
	if(hour < 11) {
	alert('아침 먹을까요?')
	} else if ( hour < 15) {
	alert('점심 먹을까요?')
	} else {
	alert('저녁을 먹어야겠네요!')
	}
</script>

 

Switch 조건문

switch ( <비교할 값> ) {
case <값> :
<문장>
break;
case <값> :
<문장>
break;
default:
<문장>
break;
}
<script>
	let input = Number(prompt('숫자를 입력:', '숫자'))
	switch( input % 2 ) {
	case 0 : alert('짝수')
	break
	case 1 : alert('홀수') 
	break
	default: alert('숫자가 아님')
	break
	} 
</script>

Switch 조건문 -> if 조건문

<script>
	const date = new Date()
	const hour = date.getDate()
	switch( true ) {
	case hour < 11: alert('아침 먹을까요?')
	break
	case hour < 15: alert('점심 먹을까요?') 
	break
	default: alert('저녁 먹어야겠습니다.')
	break
	} 
</script>

실습 - 상품 지급

  • 등수를 입력 받으면 다음과 같이 출력
    • 1등을 하면 ‘사과‘, ‘배‘, ‘수박'을 지급(출력)하고
    • 2등을 하면 ‘배‘와 ‘수박'만 지급(출력)하며
    • 3등을 하면 ‘수박'만 지급(출력)
    • 이외의 등수에 대해서는 ‘등수에 들지 못했습니다‘라고 출력
<script>
        let n = Number(prompt('등수를 입력하세요', '등수'))
        let p = ''

        switch(n) {
            case 1: p += '사과, '
            case 2: p += '배, '
            case 3: p += '수박'
                        alert(p)
                        break
            default:
                alert('꽝입니다.')
        }
        
</script>

 

 

삼항 연산자

<불 표현식> ? <참일 때 넘길 값> : <거짓일 때 넘길 값>
<script>
	let number = prompt('임의의 정수를 입력하세요:', '예, 3')
	let n = Number(number)
	n % 2 ? alert('홀수입니다'):alert('짝수입니다')
</script>
<script>
	const number = prompt('임의의 정수를 입력하세요:', '예, 3')
	const n = Number(number)
	const result = (n >= 0) ? '0 이상의 숫자입니다.':'0 보다 작은 숫자입니다.'
	alert(result)
</script>

 

‘||’ 연산자를 사용한 짧은 조건문

  • 논리 연산자의 특성을 조건문으로 사용하는 것
<script>
	true||alert('첫번째 문장 출력될까요?') // (1)
	false||alert('두번째 문장 출력될까요?') // (2)
</script>

  • (1)의 경우 좌변이 참이므로 우변을 판단(실행)할 필요 없이 → true
  • (2)의 경우 좌면이 거짓이므로 우변을 판단(실행)할 필요가 있다.
  • <불 표현식> || <불 표현식이 거짓일 때 실행할 문장>
    • 여기서 ‘||’는 논리합(or) 연산자가 아님!
<script>
        let e
        let a = 63, b
        alert(`변수 "e"는 ${typeof(e)}형이고 Boolean형으로 바꾸면 ${Boolean(e)}이다.`)
        b = e || a
        alert(`b의 값은 ${b}이고 자료형은 ${typeof(b)}이다.`)
    </script>

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

 

‘&&’ 연산자를 사용한 짧은 조건문

  • 논리 연산자의 특성을 조건문으로 사용하는 것
<script>
	true && alert('첫번재 문장 출력될까요?') // (1)
	false && alret('두번재 문장 출력될까요?') // (2)
</script>
  • (1)의 경우 좌변이 참이므로 우변을 판단(실행)할 필요 있음
  • (2)의 경우 좌면이 거짓이므로 우변을 판단(실행)할 필요가 없음
  • <불 표현식> && <불 표현식이 참일 때 실행할 문장>
    • 여기서 ‘&&’는 논리곱(and) 연산자가 아님!