Menu

루프(Loops)

반복되는 작업을 코드로 옮기기 위해, D 언어는 4가지 방법을 통해 루프를 구현할 수 있게 되어있습니다.

1) while

while 은 주어진 조건에 해당하는 상황 동안에 코드 블록(중괄호 사이의 코드들)을 반복합니다.

    while (condition)
    {
        foo();
    }

2) do ... while

do .. whilewhilte 과 비슷하지만, 반복하고 싶은 코드 블록 이 한번 실행된 다음에 반복 조건을 확인합니다.

    do
    {
        foo();
    } while (condition);

3) 일반적인 for loop

C/C++ 이나 Java에서 알려진 초기식, 조건식, 증감식 을 입력하는 방법의 for 루프입니다.

    for (int i = 0; i < arr.length; i++)
    {
        ...

4) foreach

foreach 루프 에 대해서는 다음 섹션에서 다룰 예정입니다. 간단히 정리하면, 일반적 for 루프처럼 복잡한 제어를 하지 않아도 배열이나 리스트의 모든 원소를 순회할 수 있는 루프입니다.

    foreach (el; arr)
    {
        ...
    }

특별한 예약어와 루프 레이블(Special keywords and labels)

break 는 현재 루프를 종료하기 위한 예약어 입니다. 하지만 break 단독으로는 현재 루프만을 종료시키기 때문에, 여러 루프 안에서 2단계 이상 거슬러 빠져 나가려면 레이블 을 적어놓고 break 와 함께 나갈 지점의 레이블을 지정해야합니다.

    outer: for (int i = 0; i < 10; ++i)
    {
        for (int j = 0; j < 5; ++j)
        {
            ...
            break outer;

continue 라는 예약어는 현재 루프를 continue 지점에서 끝내되, 다음 루프 반복을 할 수 있게 합니다. 다음 루프를 반복할 수 없다면 루프문은 종료됩니다.

더 살펴보기

rdmd playground.d