코스 E - 반복 1 - 반복 실행 구조와 애니메이션

이 레슨에서는 기본적인 반복 실행 구조에 대해서 소개합니다.

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

소개

이 레슨에서는 기본적인 반복 실행 구조에 대해서 소개합니다. 반복 실행 구조에 대해서 설명합니다. 반복 실행 구조를 사용하면 원하는 작업을 반복적으로 실행시킬 수 있으며, 함수와는 약간 다릅니다. 반복 실행 구조는 어떤 위치에 있는 원하는 코드들을 반복해서 실행시켜 줄 수 있게 해주지만, 함수는 전체 프로그램 코드에서 반복적으로 사용할 수 있습니다.

반복 실행 구조와 함수의 차이를 생각해보기 위해서, 실제 생활속에서 양치질 할 때의 칫솔질을 생각해 볼 수 있습니다. 대부분의 사람들은 하루에 3 번, 식사 후에 양치질을 합니다. 식사 후에 양치질을 하는 것, 즉 양치질을 함수라고 생각할 수 있습니다. 식사 시간 사이에는 다른 일들이 있습니다. 아침에 양치질을 한 다음에, 자전거를 타러 가고, 테니스를 치고, 점심을 먹은 후 양치질을 하고 등 등... 함수는 여기 저기서 반복적으로 사용할 수 있습니다.

양치질을 하는 과정에서, 칫솔질을 앞 뒤로 반복적으로 하는 것은 반복 실행이라고 할 수 있습니다. 칫솔질을 4-8 분 정도 한 후에는 칫솔질을 반복적으로 실행하는 것을 중단합니다.

반복 실행 구조와 관련한 첫 번째 레슨은, 학생들이 반복 실행 구조가 실행되는 것을 이해하고, 반복 실행 과정에 대해서 살펴볼 수 있도록 하는 목적을 가지고 있습니다. 또한, 반복 실행 구조 안에 넣을 수 있는 것들에 대해서도 실험해 봅니다.

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

배경

학생들은, 다음을 먼저 완료하는 것이 매우 좋습니다.

선생님은, 다음을 먼저 완료하는 것이 매우 좋습니다.

교사용 가이드

Open

활동

준비물

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

수업 자료

basic.forever(() => {})

무한 반복 실행

원하는 코드를 백그라운드 모드로 무한 반복 실행시킵니다.


for(let i = 0; i < 5; ++i) {
  basic.showNumber(i)
}
            

반복(for)

원하는 코드를 원하는 횟수만큼 반복 실행 시킵니다.


basic.showLeds(`
    . . . . .
    . . . . .
    . . # . .
    . . . . .
    . . . . .
    `)
            

LED 출력

LED 스크린 화면에 이미지를 출력합니다.


basic.showString("Hello!")
            

문자열 출력

LED 스크린 화면에 문자열을 출력합니다.


basic.showNumber(0)
            

수(정수) 출력

LED 스크린 화면에 수(정수)를 출력합니다.


let item = 0
item = 0
            

값 저장

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

3 단계

따라해보기

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


let Number_of_Times_Through_Loop = 0
let PassThroughLoop = 0
PassThroughLoop = 0
Number_of_Times_Through_Loop = 4
basic.forever(() => {
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showNumber(PassThroughLoop)
    }
})
        

이 코드는 0, 1, 2, 3, 4 를 출력합니다. 무한히 반복하면서 출력합니다.

2 개의 변수에 2 가지 값을 저장합니다.

Number_of_Times_Through_Loop 변수의 값이 4 로 저장됩니다. 0 부터 시작하기 때문에, 5 번 반복될 것입니다. 혼란스럽게 보이지만, 0 부터 시작하는 것은 대부분의 프로그래밍언어에서 일반적이기 때문에, 0 부터 시작한다는 개념을 배우는 것은 중요합니다.

두 번째로 중요한 변수 값은 PassThroughLoop 입니다. PassThroughLoop 는 현재까지의 반복 횟수를 나타냅니다. PassThroughLoop 변수에 저장되어있는 값은, 0 부터 시작하고, 반복 실행 구조가 한 번씩 실행될 때마다, 1 만큼 씩 증가됩니다.

시작하는 코드로 이동하기 위해서 링크를 사용하세요. 아래쪽에는 시작하는데 도움이되는 블록들이 있습니다.

시작 코드는 여기에서 사용할 수 있습니다.

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

도전과제

시작 코드는 여기에서 사용할 수 있습니다.

도전과제 1

7 까지 반복하려면 어떻게 하면 될까요?

View code

let Number_of_Times_Through_Loop = 0
Number_of_Times_Through_Loop = 7
basic.forever(() => {
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showNumber(PassThroughLoop)
    }
})
          

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

도전과제 2

9 번 반복시키려면?

View code

let Number_of_Times_Through_Loop = 0
Number_of_Times_Through_Loop = 9
basic.forever(() => {
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showNumber(PassThroughLoop)
    }
})
          

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

도전과제 3

0 부터 3 까지 카운트를 한 다음에 하트 모양을 3 초 동안 보여주도록 할 수 있을까요? 그렇게 하려면, for 반복을 추가해야할 것입니다. 그 다음에 예시 코드의 아래쪽에 있는 코드 블록들 중 하나를 사용하면 됩니다.

View code

let Number_of_Times_Through_Loop = 0
let PassThroughLoop = 0
Number_of_Times_Through_Loop = 3
basic.forever(() => {
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showNumber(PassThroughLoop)
    }
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showIcon(IconNames.Heart)
    }
})
          

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

도전과제 4

이제, 0 부터 2 까지 카운트를 한 다음, 4 초 동안 하트 모양을 출력해보세요. 하지만, 이번에는 깜박이도록 하고, 마지막에는 "Go" 단어를 3 번 보여주도록 하세요. (힌트: 깜박이게 하려면 화면 지우기를 사용해야 합니다. 또한, 이번 도전과제에서는 모든 블록을 사용해야할 것입니다.)

View code

let Number_of_Times_Through_Loop = 0
let PassThroughLoop = 0
Number_of_Times_Through_Loop = 2
basic.forever(() => {
    for (let PassThroughLoop = 0; PassThroughLoop <= Number_of_Times_Through_Loop; PassThroughLoop++) {
        basic.showNumber(PassThroughLoop)
    }
    for (let PassThroughLoop = 0; PassThroughLoop <= 4; PassThroughLoop++) {
        basic.showIcon(IconNames.Heart)
        basic.showLeds(`
            . . . . .
            . . . . .
            . . . . .
            . . . . .
            . . . . .
            `)
    }
    for (let PassThroughLoop = 0; PassThroughLoop <= 2; PassThroughLoop++) {
        basic.showString("Go")
    }
})
          

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

자기주도 연습

3 개 이상의 반복 실행 구조를 이용해 마이크로비트 애니메이션을 만들고, 재미있는 것을 출력해보세요. 3 가지를 출력하고, 그것과 관련된 이야기들을 준비하세요.

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

퀴즈

질문 1

"for 반복 실행 구조" 는 무엇인가요?

Show answer

일반적으로, for 반복구조는 원하는 횟수 만큼 반복적으로 코드들을 실행시킬 수 있는 구조입니다.

질문 2

다음 코드를 실행시키면 어떻게 되는지 설명해보세요.


let index = 0
index = 0
basic.forever(() => {
    for (let index = 0; index <= 4; index++) {
        basic.showNumber(index)
    }
})
        
Show answer

1 개의 for 반복 실행 구조가 있고, 0 부터 시작합니다. i 는 횟수를 저장하기 위한 함수이고, 4 는 반복실행을 할 마지막 값 입니다. 횟수를 저장하는 i 값은 0 부터 시작하고, 반복 실행 구조를 한 번 실행할 때마다 1 만큼씩 증가됩니다. 반복 실행 구조는 i 에 저장된 값이 4 보다 크게 되면, 반복 실행이 중단되고 종료됩니다.

질문 3

다음 코드에 대해 설명해보세요.


let index = 0
index = 0
basic.forever(() => {
    for (let index = 0; index <= 6; index++) {
        basic.showNumber(index)
    }
})
        
Show answer

1 개의 for 반복 실행 구조가 있고, 0 부터 시작합니다. i 는 횟수를 저장하기 위한 함수이고, 6 는 반복실행을 할 마지막 값 입니다. 횟수를 저장하는 i 값은 0 부터 시작하고, 반복 실행 구조를 한 번 실행할 때마다 1 만큼씩 증가됩니다. 반복 실행 구조는 i 에 저장된 값이 6 보다 크게 되면, 반복 실행이 중단되고 종료됩니다.

더 알아보기