학이시습

[혼공스] 2주차_조건문 알아보기! 본문

혼공학습단/혼공스

[혼공스] 2주차_조건문 알아보기!

dbswndud 2024. 1. 11. 21:21

혼공스 커리큘럼 [2주차]

Chapter 3

01. 조건문 

조건문을 사용하면 조건에 따라 코드를 실행할 수 있고 실행하지 않을수도 있습니다. 이처럼 코드가 실행되는 흐름을 변경하는 것을 조건 분기라고 합니다.

if 조건문은 조건에 따라서 코드를 실행하거나 실행하지 않을 때 사용하는 구문입니다.

이때 조건은 불 자료형입니다. 비교 연산자 논리 연산자를 활용해 조건을 만들고, 이 조건을 활용해 조건 분기를 합니다.

 

if 조건문

자바스크립트에서 가장 일반적인 조건문은 if 조건문입니다. 조건이 true면 중괄호 안의 문장을 실행하고 false면 문장을 무시합니다.

if(불 값이 나오는 표현식) {
    불 값이 참일 때 실행할 문장
}

 

if else 조건문

else 구문은 서로 반대되는 상황을 표현합니다. 

else 구문과 if 조건문을 조합한 조건문을 if else 조건문이라고 합니다.

if(불 값이 나오는 표현식){
    불 값이 참일 때 실행할 문장
}
else{
    불 값이 거짓일 때 실행할 문장
}

 

중첩 조건문

조건문 안에 조건문을 중첩해 사용하는 것을 충접 조건문이라고 합니다.

if(불 값이 나오는 표현식 1){
    불 값이 참일 때 실행할 문장
    if(불 값이 나오는 표현식 2) {
        2가 참일 때 실행할 문장
    }
    else{
    표현식 2가 거짓일 때 실행할 문장
    }
}

 

확인 문제

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


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

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

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

 

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

<script>
    const a = _____(prompt('첫 번째 숫자', ''))
    const b = _____(prompt('두 번째 숫자', ''))
    
    if(_____) {
        alert('첫 번째로 입력한 숫자가 더 큽니다.')
    }
    else if(_____) {
        alert('두 숫자가 같습니다.')
    }
    else {
        alert('두 번째로 입력한 숫자가 더 큽니다.')
    }
</script>
Number
Number
a > b
a === b

 

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

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

기본 미션

 

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

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

    if(a < 0) {
        alert('입력한 숫자는 음수입니다.')
    }
    else if(a > 0) {
        alert('입력한 숫자는 양수입니다.')
    }
    else {
        alert('입력한 숫자는 0입니다.')
    }
</script>

 

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

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

    if(a % 2 === 0) {
        alert('입력한 숫자는 짝수입니다.')
    }
    else {
        alert('입력한 숫자는 홀수입니다.')
    }
</script>

 

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

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

    if(a >= 3 && a <= 5) {
        alert('봄입니다.')
    }
    else if(a >= 6 && a <= 8) {
        alert('여름입니다.')
    }
    else if(a >= 9 && a <= 11) {
        alert('기을입니다.')
    }
    else if(a == 1 || a == 2 || a == 12) {
        alert('겨울입니다.')
    }
</script>

 

02. switch 조건문과 짧은 조건문

switch 조건문

switch 조건문은 특정 값의 조건을 비교할 때 사용합니다.

switch 조건문의 기본 형태 ↓  default 키워드는 생략할 수 있습니다.

switch(자료) {
    case 조건A:
        break
    case 조건B:
        break
    default:
        break
}

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

 

switch 조건문을 if 조건문으로 변환하기

모든 switch 조건문은 if 조건문으로 바꿀 수 있지만 범위를 조건으로 가지는 if 조건문은 switch 조건문으로 대처하긴 어렵습니다. 그러나 전혀 불가능한 것은 아닙니다.

 

조건문 연산자

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

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

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

 

짧은 조건문

짧은 조건문은 논리 연산자의 특성을 조건문으로 사용하는 것입니다.

 

논리합 연산자를 사용한 짧은 조건문

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

 

논리곱 연산자를 사용한 짧은 조건문

불 표현식 && 불 표현식이 참일 때 실행할 문장

 

확인 문제

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

<script>
    const result = (100 > 200) ? prompt('값을 입력해주세요.', '') : confirm('버튼을 클릭해주세요')
    alert(result)
</script>
100 > 200이 false이므로 confirm이 활성화 될 것입니다.

 

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

<script>
    const rawIntput = prompt('태어난 해를 입력해주세요.', '')
    const year = Number(rawIntput)
    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
        case 10:
            result = '양';     break
    }
    alert(`${year}년에 때어났다면 ${result} 띠입니다.`)
</script>

 

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

<script>
    const rawIntput = prompt('태어난 해를 입력해주세요.', '')
    const year = Number(rawIntput)

    let 간
    let e = year % 10
    if     (e === 0) { 간 = '경'}
    else if(e === 1) { 간 = '신'}
    else if(e === 2) { 간 = '임'}
    else if(e === 3) { 간 = '계'}
    else if(e === 4) { 간 = '갑'}
    else if(e === 5) { 간 = '을'}
    else if(e === 6) { 간 = '병'}
    else if(e === 7) { 간 = '정'}
    else if(e === 8) { 간 = '무'}
    else if(e === 9) { 간 = '기'}

    let 띠
    let gan = year % 12
    if     (gan === 0) { 띠 = '신'}
    else if(gan === 1) { 띠 = '유'}
    else if(gan === 2) { 띠 = '술'}
    else if(gan === 3) { 띠 = '해'}
    else if(gan === 4) { 띠 = '자'}
    else if(gan === 5) { 띠 = '축'}
    else if(gan === 6) { 띠 = '인'}
    else if(gan === 7) { 띠 = '묘'}
    else if(gan === 8) { 띠 = '진'}
    else if(gan === 9) { 띠 = '사'}
    else if(gan === 10) { 띠 = '오'}
    else if(gan === 11) { 띠 = '미'}
    
    alert(`${year}년은 ${간}${띠} 년입니다.`)
</script>

 

선택 미션

선택 미션