코스 F - 조건/선택 실행 1 - 날씨 예보 조건/선택 실행

이 레슨은 프로그래밍에서 가장 기초적인 의사-결정 도구를 소개합니다.

  • Computer-science
  • Conditionals
Print lesson
  • 대상 연령 10+
  • 65+ 예상 시간(분)
  • Javascript Blocks

소개

이 레슨에서는 프로그래밍에서 가장 기초적인 의사-결정 도구를 소개합니다. 조건/선택 명령문들은 어떤 데이터 값에 따른 서로 다른 실행을 가능하게 해줍니다.

대부분의 경우는 두 개의 수나 문자열(단어)을 서로 비교하게 됩니다. 그렇게 얻어낸 결과에 따라, 지능적인 방법으로 프로그램이 동작하도록 만들 수 있습니다.

실제 현실에서도 매일, 어떤 상황이나 조건에 따라 여러 가지 가능한 선택들 중에서 한 가지를 선택하는 경우들이 많이 있습니다. 날씨에 따라 입을 옷을 결정합니다. 바람이 많이 부는날이면, 재킷을 입거나 연을 날릴 수 있습니다. 비가 올 것 같으면 우산을 챙깁니다. 이 레슨에서는 실제 현실에서 날씨와 관련된 상황에 대해, '만약(if)...이면(then)...아니면(else)' 논리 블록을 사용합니다.

첫 번째 레슨에서는 서로 다른 두 가지 상황에 대해서 가능하지만, 두 번째 레슨에서는 더 많은 상황에 대해서도 가능하게 됩니다. '만약(if)...이면(then)...아니면(else)' 논리 블록은 무한하게 많은 서로 다른 상황들로 확장할 수 있습니다. '만약(if)...이면(then)...아니면(else)' 블록에 있는 톱니바퀴 아이콘을 누르면, 여러 가지 경우들을 계속해서 만들 수 있습니다.

마이크로비트 코스 레슨들은 Code.org CS 기초 과정에서 배운 지식들을 적용하는 내용들로 맞춰져 있습니다. 이 코스 레슨들을 시작하기 전에, 학생들이 모든 CS 기초 지식들을 먼저 완료하기를 권장합니다. 학생들은 Code.org CS 기초 과정들을 통해, 조건/선택 실행 구조에 대해서 잘 알고 있어야 합니다.

교사용 가이드

Open

활동

준비물

  • BBC 마이크로비트 1대
  • USB 케이블 1개
  • AAA 배터리 팩 (옵션)
  • AAA 배터리 2개 (옵션)

수업 자료

if (true) {

} else if (false) {

} else {

}

만약(if)

조건식의 참(true), 거짓(false) 결과값(불 값)에 따라, 선택적으로 코드를 실행합니다.


let item = 0
item = 0
            

값 저장

등호 기호를 사용하면, 변수에 어떤 수나 문자열을 저장할 수 있습니다.

let item = Math.random(5)

랜덤

0 부터 어떤 범위까지의 정수 값을 랜덤으로 리턴합니다.

basic.showIcon(IconNames.Heart)

아이콘 출력

선택한 아이콘을 LED 스크린 화면에 출력합니다.

basic.showString("Hello!")

문자열 출력

LED 스크린에 원하는 수를 문자열로 출력할 수 있습니다. 한 자리를 넘는 수는 왼쪽으로 슬라이드되며 나타나게 됩니다.

input.onButtonPressed(Button.A, () => {})

버튼 누르면 실행

이벤트 핸들러 (어떤 버튼이 눌린 것과 같은 이벤트가 발생했을 때, 실행되는 작은 프로그램)를 실행합니다.

4 단계

따라해보기

마이크로비트를 위한 단계별 설명이나 온라인 코드를 제공할 예정입니다. https://makecode.microbit.org 로 접속해보세요.


let Random_Weather = 0
input.onButtonPressed(Button.A, () => {
    Random_Weather = Math.random(2)
    if (Random_Weather == 0) {
        basic.showString("Raining")
    } else {
        basic.showString("Play Outside!")
    }
    SmoothOut_Animation()
})
function SmoothOut_Animation()  {
    basic.pause(1000)
    basic.clearScreen()
}
        

마이크로비트로 일기 예보를 할 수 있습니다!

A 버튼을 누르면 랜덤으로 수를 뽑습니다. 뽑히는 수는 0 또는 1 입니다.

뽑힌 수가 0 이면 비가 내리는 것을 의미합니다.

뽑힌 수가 1이면 비가 오지 않는 것이기 때문에 나가서 놀면 됩니다.

안내: 코드의 아래쪽에 있는 사용되지 않은 블록들은 도전과제에서 사용될 것입니다.

완성된 코드는 여기 에서 살펴볼 수 있습니다.

도전과제

도전과제 1

비가 내리는 것을 좀 더 의미있게 출력할 수 있도록, 애니메이션을 추가할 수 있나요?

힌트: 우산 아이콘을 사용해보세요. 스케이트 아이콘도 사용해보세요.

View code

let Random_Weather = 0
input.onButtonPressed(Button.A, () => {
    Random_Weather = Math.random(2)
    if (Random_Weather == 0) {
        basic.showString("Raining")
        basic.showIcon(IconNames.Umbrella)
    } else {
        basic.showString("Play Outside!")
        basic.showIcon(IconNames.Rollerskate)
    }
    SmoothOut_Animation()
})
function SmoothOut_Animation()  {
    basic.pause(1000)
    basic.clearScreen()
}
          

완성된 코드는 여기 에서 살펴볼 수 있습니다.

도전과제 2

만약(if) 조건/선택 실행 구조를 사용해 밝음 / 따뜻함도 예보할 수 있도록 만들어보세요. 단어, 아이콘, LED 출력 등을 더 추가해 보세요.

힌트: '만약(if)...이면(then)...아니면(else)' 블록의 내부를 수정해야 할 것입니다. Random_Weather 와 관련된 값들을 바꿀 필요가 없습니다.

View code

let Random_Weather = 0
input.onButtonPressed(Button.A, () => {
    Random_Weather = Math.random(2)
    if (Random_Weather == 0) {
        basic.showString("Sunny / Warm")
        basic.showIcon(IconNames.TShirt)
    } else {
        basic.showString("Play Outside!")
        basic.showIcon(IconNames.Rollerskate)
    }
    SmoothOut_Animation()
})
function SmoothOut_Animation()  {
    basic.pause(1000)
    basic.clearScreen()
}
          

완성된 코드는 여기 에서 살펴볼 수 있습니다.

도전과제 3

만약(if) 조건/선택 실행 구조를 사용해 눈옴 / 추움도 예보할 수 있도록 만들어보세요. 단어, 아이콘, LED 출력 등을 더 추가해 보세요.

View code

let Random_Weather = 0
input.onButtonPressed(Button.A, () => {
    Random_Weather = Math.random(2)
    if (Random_Weather == 0) {
        basic.showString("Snowy / Cold")
        basic.showIcon(IconNames.Chessboard)
    } else {
        basic.showString("Play Outside!")
        basic.showIcon(IconNames.Rollerskate)
    }
    SmoothOut_Animation()
})
function SmoothOut_Animation()  {
    basic.pause(1000)
    basic.clearScreen()
}
          

완성된 코드는 여기 에서 살펴볼 수 있습니다.

자기주도 연습

일기 예보를 다시 만들어보세요. 어떤 것을 예측하거나, 판단하는 코드를 만들어보세요. 여러분이 만든 코드에 대해 발표할 준비를 하세요. Random_Weather 와 다른 단어들을 자신의 주제에 맞추어 바꾸어보세요.

예시 - 미래의 직업을 알려주는 것으로 바꾸거나, 쇼핑이나 독서 중에 선택하도록 할 수도 있습니다. 가능한 것은 무한히 많습니다.

퀴즈

다음과 같은 질문들을 사용해, 학습활동과 도전과제들에 대해서 다시 기억해 내도록 할 수 있습니다.

질문 1

지금까지 이야기 하지 않은, 실제의 현실에서 '만약(if)...이면(then)...아니면(else)' 조건/선택 실행 구조를 사용할 수 있는 것은 어떤 것들이 있을까요?

Show answer

답변들은 매우 다양할 것입니다. 하지만... 예시 - 선생님이 화가나시면 조용히 아니면 떠들기

질문 2

다음 코드는 어떻게 출력될까요?


Set DONUTS to 12

if DONUTS > 20 then
   show string "SHARE"
else
   show string "EAT ALONE"
        
Show answer

"EAT ALONE" 이 출력될 것입니다.

질문 3

다음 만약(if) 조건/선택 실행 구조를 완성하세요.


If I_AM_HUNGRY THEN
   your_answer
else
   your_answer
        
Show answer

답변들은 다양할 것입니다. 예시:


If I_AM_HUNGRY THEN
   show string "I eat food"
else
   show string "I don't eat"
        

더 알아보기