انتقل إلى المحتوى الرئيسي

반복문

소개

Wave 언어에서는 동일한 코드를 여러 번 실행해야 하는 상황을 처리하기 위해 반복문을 제공합니다. 반복문은 특정 조건이 만족되는 동안 코드를 계속 실행하거나, 정해진 횟수만큼 반복 실행할 때 사용됩니다.

이를 통해 동일한 로직을 반복해서 작성할 필요 없이, 간결하고 명확한 코드로 반복 작업을 표현할 수 있습니다. Wave는 조건 기반 반복과 횟수 기반 반복을 모두 지원하며, 반복 도중 실행 흐름을 제어할 수 있는 키워드도 함께 제공합니다.

이 섹션에서는 while 문과 for 문, 그리고 반복 흐름을 제어하는 break, continue 키워드의 사용 방법을 설명합니다.


while 문

while 문은 주어진 조건식이 참(true)으로 평가되는 동안 코드 블록을 반복 실행합니다. 조건식이 거짓(false)이 되는 순간 반복은 즉시 종료됩니다.

이 방식은 반복 횟수가 명확하지 않고, 특정 조건이 만족될 때까지 반복해야 하는 상황에 적합합니다.

기본 구조

Wave에서 while 문의 기본 구조는 다음과 같습니다.

while (조건식) {
// 반복할 코드
}

조건식은 반드시 bool 타입으로 평가되어야 하며, 중괄호 {}로 감싸진 코드 블록 안에는 하나 이상의 명령문을 작성할 수 있습니다.

예제: 0부터 4까지 출력

var i :i32 = 0;

while (i < 5) {
println("i는 {}입니다.", i);
i = i + 1;
}

이 예제에서는 변수 i가 5보다 작은 동안 반복이 수행됩니다. 매 반복마다 현재 값을 출력하고, i의 값을 1씩 증가시켜 조건이 eventually 거짓이 되도록 만듭니다.


for 문

for 문은 반복 횟수가 비교적 명확한 경우에 사용하기 적합한 반복문입니다. 초기값, 조건식, 증감식을 한 번에 정의하여 반복의 흐름을 명확하게 표현할 수 있습니다.

반복 제어에 필요한 요소가 한 곳에 모여 있기 때문에, 반복 구조를 한눈에 파악하기 쉽다는 장점이 있습니다.

기본 구조

for (var 변수명: 타입 = 초기값; 조건식; 증감식) {
// 반복할 코드
}

여기서 반복 변수는 초기값으로 시작하며, 조건식이 참인 동안 반복이 실행됩니다. 각 반복이 끝날 때마다 증감식이 실행되어 반복 변수의 값이 변경됩니다.

예제: 1부터 5까지 출력

for (var i: i32 = 1; i <= 5; i = i + 1) {
println("i = {}", i);
}

이 예제에서는 i가 1부터 시작하여 5 이하인 동안 반복이 수행됩니다. 각 반복마다 i의 값을 출력한 후 1씩 증가시킵니다.


중첩 반복문

반복문은 다른 반복문 내부에 작성할 수 있으며, 이를 중첩 반복문이라고 합니다. 중첩 반복문은 2차원 데이터 구조를 순회하거나, 여러 조건의 조합을 처리할 때 유용합니다.

예제: 2중 while 문

var i :i32 = 0;

while (i < 3) {
var j :i32 = 0;

while (j < 2) {
println("i={}, j={}", i, j);
j = j + 1;
}

i = i + 1;
}

이 예제에서는 바깥쪽 while 문이 한 번 실행될 때마다, 안쪽 while 문이 모두 실행됩니다. 이를 통해 (i, j) 형태의 조합을 순차적으로 처리할 수 있습니다.


break 문

break 문은 반복문을 즉시 종료하고, 해당 반복문 바깥으로 흐름을 이동시킵니다. 반복 도중 더 이상 반복을 수행할 필요가 없을 때 사용됩니다.

예제: 특정 값에서 반복 종료

var i :i32 = 0;

while (true) {
if (i == 5) {
break;
}

println(i);
i = i + 1;
}

이 예제에서는 무한 반복문 안에서 i가 5가 되는 순간 break가 실행되어 반복이 종료됩니다. 이처럼 break 문은 반복 조건과 별개로 반복을 제어하고 싶을 때 유용합니다.


continue 문

continue 문은 현재 반복에서 남은 코드를 건너뛰고, 다음 반복을 바로 시작합니다. 특정 조건일 때 일부 로직만 생략하고 싶을 경우에 사용됩니다.

예제: 짝수만 출력

for (var i: i32 = 0; i <= 10; i = i + 1) {
if (i % 2 == 1) {
continue;
}

println(i);
}

이 코드에서는 i가 홀수일 경우 continue가 실행되어 출력 부분을 건너뜁니다. 그 결과 짝수 값만 출력됩니다.


요약

Wave의 반복문은 조건 기반과 횟수 기반 반복을 모두 자연스럽게 표현할 수 있도록 설계되었습니다. while 문은 조건 중심의 반복에 적합하며, for 문은 반복 횟수와 흐름이 명확한 경우에 유용합니다.

breakcontinue를 함께 사용하면 반복 도중에도 실행 흐름을 세밀하게 제어할 수 있어, 보다 정교하고 유연한 반복 로직을 구성할 수 있습니다.