엔트리 블록 코딩

엔트리 | 흐름 탭 - 명령어의 흐름을 제어하는 제어구조. 조건문과 반복문 활용하기.

블로그 하는 으노 2024. 8. 18. 21:40
반응형

엔트리는 블록 코딩 소프트웨어이다.


  흐름 탭은 프로그래밍 과정에 너무도 중요한 요소인 제어 구조 기능을 제공한다. 프로그램이 구현해 낼 수 있는 경험을 넓히고 또 시스템의 자원도 효율적으로 사용하기 위해서는 제어 구조를 잘 활용해야 한다. 제어 구조는 프로그램이 진행되는 흐름을 제어하는 구조라는 의미를 갖는다. 제어 구조에는 순차 구조, 선택 구조, 반복 구조가 있다.

순차 구조

왼쪽이 (A), 오른쪽이 (B)

  프로그램 명령어는 기본적으로 순차 구조를 따른다. 위에서 아래로, 순서대로, 차례대로 실행되는 단방향 구조를 갖는다.(x: 0, y: 0)에 위치한 엔트리봇이 위와 같은 명령어를 수행하게 된다고 하자. 왼쪽 (A)의 경우에는 최종적인 좌표가 (10, 0)이 되는 반면, 오른쪽 (B)의 경우의 최종 좌표는 (100, 0)이 된다. 명령어의 순서가 뒤바뀐다면 전혀 다른 결과를 얻게 된다.

판단 탭

  판단 탭에 대하여는 다음에 다루겠지만, 선택 구조와 반복 구조에 대해 이야기하기 위해서는 판단 탭의 쓸모에 대해 알아야 한다. 판단 탭은 선택 구조와 반복 구조에서 필요한 조건을 만들어주는 명령어들의 집합이다. 프로그램은 조건의 참과 거짓을 판단하여 특정 동작을 실행할지 말지, A를 실행할지 B를 실행할지, 특정 동작을 반복 실행할지를 결정하기 때문에 조건의 논리가 매우 중요하다. 위에 작성된 명령어는 선택 구조인데, '참'인 부분에 조건이 들어가야 하고, 이 조건을 만드는 명령어는 판단 탭에 있다. '참'인 부분의 모양과 같이 파란색에 육각형 블록이다.

선택구조

  선택 구조는 조건에 따라 명령어를 실행할지 말지를 결정하는 구조이다. 그렇기 때문에 조건 구조라고도 하고 명령어 집합은 조건문이라고 한다. 일반적으로 세 가지 형태로 나눌 수 있다.

1. 만일 (조건)이 참이라면 [명령어A]
2. 만일 (조건)이 참이라면 [명령어A]
    아니라면 [명령어B]
3. 만일 (조건1)이 참이라면 [명령어A]
    아니고 (조건2)가 참이라면 [명령어B]
     ...
    아니고 (조건n)이 참이라면 [명령어α]
    아니라면 [명령어β]

  1번 형태는 괄호 안의 조건이 참이라면 명령어A를 실행하고 이후 명령어를 실행한다. 조건이 참이 아닌 경우에는 조건문 전체를 스킵하고 이후 명령어를 실행한다.

  2번 형태는 괄호 안의 조건인 참인 경우에는 명령어A를 실행하고 조건이 참이 아닌 경우에는 명령어B를 실행한다. 두 가지 선택 중 한 가지는 반드시 실행되고, 둘 다 실행될 수는 없다. 조건문 실행 이후 뒤따르는 명령어가 실행된다.

  3번 형태는 여러 가지 조건을 명시할 수 있는 경우에 사용하는 구조이다. 마지막에는 '아니라면'의 경우를 포함하는 것이 일반적이다. 그러나 엔트리에서는 3번 형태를 사용하지 않고 조건이 여러 가지인 경우 2번의 중첩으로 해결한다.

  예컨대 위와 같은 명령어는 1번의 형태로 볼 수 있다. 조건 5 > 3은 참이기 때문에 조건문이 실행되면 괄호 안의 명령어가 실행된다. 조건문이 종료되면 이후에 뒤따르는 명령어도 실행된다. (0, 0)에서 시작한 오브젝트라면 명령어 실행 이후 (35, 0)에 위치하게 될 것이다. 자세한 것은 따로 다루어 보겠다.

반복 구조

  반복은 컴퓨터의 가장 강력한 기능이다. 사람이 따라 할 수 없는 속도로 반복 작업을 할 수 있다. 조건에 따라 특정 행위를 반복하는 구조를 반복 구조라고 하고 이런 명령어 집합을 반복문이라고 한다. 반복문은 다음과 같은 형태로 구분된다.

1. 일정 횟수만큼 반복하기
2. 조건이 참이 될 때까지 반복하기
3. 조건이 참인 동안 반복하기
4. 계속 반복하기

  자세한 활용은 따로 다루겠지만, 4번의 경우 유의해서 사용해야 한다. 프로그램이 특정 작업을 무한히 반복하는 것은 시스템의 자원을 지속적으로 소모하고 있다는 뜻이다. 반복문은 특별한 경우가 아니라면 종료되도록 계획해야 한다.

반응형