변수 · 조건 · 반복¶
복잡한 흐름을 만들기 위한 변수, 조건 분기 (IF), 반복 (LOOP) 카드들입니다.
무엇을 하는 단계인가요?¶
- 변수 — 값을 기억해두고 나중에 사용
- 조건 (IF) — 상황에 따라 다른 동작
- 반복 (LOOP) — 같은 동작을 여러 번
이 3가지 카드 그룹을 익히면 모든 자동화 흐름을 표현할 수 있습니다.
카드 종류¶
-
변수
변수 만들기·값 저장하기·계산하기값을 기억하고 연산
-
조건 (IF)
만약 ~이면·아니면 / 아니면 ~이면·만약 ~끝상황별 분기
-
반복 (LOOP)
반복하기·~하는 동안·카운터 반복·반복 탈출여러 번 같은 동작
-
카운터
횟수 세기·카운터 초기화개수 누적 · 목표 도달 감지
변수 카드¶
변수 만들기¶
새 변수를 선언하고 초기값을 설정합니다.
- 파라미터:
- 변수 이름 (예:
myCount) - 타입 (숫자 / 텍스트)
- 초기값
- 변수 이름 (예:
- 사용: 흐름 시작 부분에 한 번 선언
변수 탭 사용 권장
카드로 변수 선언도 가능하지만, 화면 우측 변수 탭에서 관리하는 것이 더 편합니다.
값 저장하기¶
변수에 값을 할당합니다.
- 파라미터:
- 변수 이름
- 저장할 값 (숫자, 텍스트, 다른 변수명)
- 예시:
myCount = 5또는myCount = 다른변수
계산하기¶
두 값을 연산해서 결과를 변수에 저장합니다.
- 파라미터:
- 결과 저장 변수
- 값 A (변수명 또는 숫자)
- 연산 (+ / − / × / ÷ / > / < / == / ≠ / ≥ / ≤)
- 값 B (변수명 또는 숫자)
- 예시:
result = myCount × 2또는result = a > b(참=1, 거짓=0)
조건 카드 (IF / ELSE)¶
만약 ~이면 (IF)¶
조건이 참이면 안의 카드들을 실행합니다.
- 조건 종류:
- 센서: "IR1에 물체가 있으면" / "IR2에 물체가 있으면"
- 색상: "빨간색이면" / "파란색이면" / ... (9가지)
- GPIO 입력: "GPIO CI0 눌리면" 등
- 변수 비교: 변수명 + 연산 + 비교값
아니면 / 아니면 ~이면 (ELSE / ELSIF)¶
IF 조건이 거짓일 때 실행합니다.
- 파라미터: 추가 조건 (비우면 ELSE, 채우면 ELSIF)
만약 ~끝 (END_IF)¶
IF 블록을 닫습니다.
반복 카드 (LOOP)¶
반복하기 (LOOP)¶
지정 횟수 또는 무한 반복합니다.
- 파라미터:
- 반복 방식 (횟수 지정 / 무한 반복)
- 반복 횟수 (1 ~ 100)
- 무한 반복: 안전을 위해 최대 10,000회 후 자동 종료
~하는 동안 (WHILE)¶
조건이 참인 동안 계속 반복합니다.
- 파라미터: 조건 (IF 와 동일한 옵션)
- 예시: "물체가 있는 동안 계속 반복"
- 최대 10,000회 자동 제한
카운터 반복 (LOOP_N)¶
N회 반복하면서 카운터 변수가 자동으로 증가합니다.
- 파라미터:
- 반복 횟수
- 카운터 변수명 (기본
i)
- 예시: 5회 반복 시
i= 1, 2, 3, 4, 5 자동 설정
반복 탈출 (LOOP_BREAK)¶
현재 반복문에서 즉시 빠져나옵니다 (보통 IF 안에서 사용).
카운터 카드¶
횟수 세기 (CTU)¶
카운터 변수를 1씩 증가시키고, 목표값 도달 시 플래그를 설정합니다.
- 파라미터:
- 카운터 이름
- 목표값 (PV, 1 ~ 9999)
- 자동 변수:
{카운터이름}— 현재 카운트{카운터이름_Q}— 목표 도달 여부 (참/거짓)
카운터 초기화 (RES)¶
카운터를 0 으로 리셋합니다.
- 파라미터: 카운터 이름
- 사용: 반복 사이클 시작 시 또는 새 작업 시작 시
들여쓰기 시각화¶
IF / LOOP 블록은 들여쓰기로 시각화되어 코드 구조가 한눈에 파악됩니다.
시작
↓
LOOP 5회
├─ 색깔 확인
├─ IF 빨간색이면
│ ├─ 로봇 이동 A
│ └─ 메시지 ("빨강")
├─ 아니면
│ ├─ 로봇 이동 B
│ └─ 메시지 ("다른 색")
└─ 만약 끝
LOOP 끝
↓
종료
사용 예시¶
예시 1 — 색상 분류 (IF / ELSIF / ELSE)
예시 2 — 반복 (LOOP) 으로 5번 픽 앤 플레이스
예시 3 — 카운터로 100개 처리 후 자동 종료
자주 발생하는 문제¶
무한 반복인데 10,000회에서 멈춤
안전을 위한 의도된 동작입니다. 무한 루프로 인한 시스템 정지 방지. 정말 더 많은 반복이 필요하면 외부 트리거 (센서·시간) 와 결합하세요.
변수가 텍스트와 숫자가 섞여서 오류
[계산하기] 카드는 숫자만 지원합니다. 텍스트 결합은 [메시지 보내기] 의 {변수} 삽입으로만 가능합니다.
IF/END_IF 누락 오류
IF 카드를 시작했으면 반드시 [만약 끝] 카드로 닫아야 합니다. 들여쓰기 시각화로 IF 블록의 시작·끝을 확인하세요.
ELSIF 조건과 ELSE 순서가 어색하면
조건은 위에서 아래로 평가됩니다. 더 구체적인 조건을 위에 배치하고, 일반적 조건은 아래에 두세요.
강사 팁¶
변수는 단순한 카운터부터
학생에게 처음부터 복잡한 변수를 가르치기보다, 카운터 (횟수 세기) 부터 시작하세요. 시각적으로 결과 확인이 쉬워서 이해가 빠릅니다.
IF 는 색상 분류부터
IF 카드의 첫 학습은 [색깔 확인 → IF 빨간색이면 → 로봇 이동] 패턴이 가장 직관적입니다.
LOOP_N 의 i 변수 활용
학생이 {i} 같은 변수가 어떻게 자동 증가하는지 보면 변수 개념을 빠르게 이해합니다.
들여쓰기 확인 습관
IF / LOOP 블록은 들여쓰기로 시각화됩니다. 학생 흐름이 의도와 다를 때는 들여쓰기 위치 먼저 확인 하도록 안내하세요.
다음 단계¶
복잡한 흐름이 가능해졌다면 병렬 실행 → 으로 이동합니다.
이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.