메뉴 건너뛰기

문제집 / 그룹 문제

문제집 만든이 문제수 조회수 좋아요 생성 수정 공개
블록 코딩 : 07. Loops 관리자 0 3450 0 2019-02-07
01:16:24
2019-02-09
07:47:12
2019-03-31
23:56:12


루프(Loop)는 특정 블록(군)을 반복하는 제어 구조입니다.

특정 횟수만큼 반복

가장 간단한 루프는 지정된 횟수만큼 코드를 반복합니다.  예를 들어, 다음의 블록은 "Hello!" 텍스트를 10회 반복합니다. 단, print 블록의 특성한 "Hello!"를 출력할 때마다 개행(Enter) 됩니다.

~ '동안' 반복

두번째 반복 구조는 조건이 만족하는 동안 반복하는 것입니다. 주사위를 굴려서 나온 값의 총합이 30 미만인 동안 주사위를 계속 굴리는 게임을 상상해 봅시다. 이 게임은 다음과 같이 구현해야 합니다.

  1. total 변수의 초깃값으로 0을 설정합니다.
  2. 루프는 total이 30보다 작은지 확인하는 것으로 시작합니다. 만약 조건이 만족하면 내부의 블록을 실행합니다.
  3. 1에서 6 범위의 난수가 생성되고, 그 난숫값을 roll 변수에 저장합니다.
  4. roll 변수 값을 출력합니다.
  5. 변수 total에 roll 변수 값을 누적합니다.
  6. 루프의 끝에 도달하면 제어가 2단계로 돌아갑니다.

루프가 완료되면 후속 블록이 실행되나, 위의 프로그램에서 후속 블록이 별도로 없습니다. 이 예에서 루프틑 1에서 6 사이가 출력되며, total 값이 30, 또는 30 이상이 되는 순간 루프는 종료합니다.

~ '까지' 반복

세번째 반복 구조는 조건이 만족할 때까지 반복하는 것입니다. 예를 들어, 다음은 주사위를 굴려서 나온 값의 총합이 30이상일 때까지 주사위를 계속 굴리는 게임을 구현한 것입니다. 위의 프로그램과 다른 점은 while이 untile로 바뀐 점과 조건식이 바뀐 것입니다. 결국 두 프로그램은 동일합니다.

카운트 반복

네번째 반복 구조는 특정 변수의 초기치, 종료치, 증가치를 제시하고, 특정 변수의 시작치로부터 매번 반복할 때마다 증가치를 누적하여, 종료치까지 반복합니다. 다음의 프로그램은 숫자 1, 3, 5를 출력합니다.

다음은 숫자 5, 3, 1를 출력하는 프로그램인데,  초기치가 종료치보다 클 수 있습니다. 이러한 경우에는 증가치의 양수, 또는 음수와는 상관없이 동일하게 동작합니다.

리스트 순회 반복

다섯번째 반복 구조는 리스트의 첫번째 값부터 마지막 값까지 순회하면서 반복하는 것입니다. 다음은 리스트의 첫번째 값부터 마지막 값까지 순회하면서 각 요소 값을 차례대로 출력하는 프로그램입니다. 단, 매 반복 시 리스트의 요소 값은 자동으로 letter에 저장됩니다. 

루프 계속 블록

continue with next iteration of loop 블록을 만나면, 후속 명령문을 수행하지 않고, 그 다음 반복을 진행합니다. 다음의 프로그램은 첫번째 반복에서 "alpha"를 출력한 후, "beta"를 건너뛰고 다음 반복을 계속 진행합니다. 마지막 반복에서 "gamma"를 출력합니다.

루프 종료 블록

break out of loop 블록을 만나면, 그 즉시 반복을 종료합니다. 첫번째 반복에서 "alpha"를 출력하고, 두번째 반복에서 letter 변수에 저장된 값이 "beta"이므로, 그 즉시 루프를 종료하므로, 세번째 항목은 출력할 수 없다.

 



코드 제목 시간(초) 메모리(MB) 나의판정 소스 제출 통과 비율(%) 시도 성공 비율(%)

위로