Main Content

루프 제어문

루프 제어문을 사용하면 코드 블록을 반복적으로 실행할 수 있습니다. 다음과 같이 두 가지 유형의 루프가 있습니다.

  • for 문은 특정 횟수만큼 루프를 수행하고 증분하는 인덱스 변수를 사용하여 각각의 반복을 추적합니다.

    예를 들어, 요소를 10개 가진 벡터를 사전할당(Preallocation)하고 5개 값을 계산합니다.

    x = ones(1,10);
    for n = 2:6
        x(n) = 2 * x(n - 1);
    end
  • while 문은 조건이 true로 유지되는 한 계속 루프를 수행합니다.

    예를 들어, factorial(n)이 처음으로 100자리 숫자가 되는 정수 n을 구할 수 있습니다.

    n = 1;
    nFactorial = 1;
    while nFactorial < 1e100
        n = n + 1;
        nFactorial = nFactorial * n;
    end

각 루프에는 end 키워드가 필요합니다.

특히, 루프가 중첩되어 있는 경우에는(즉, 한 루프에 다른 루프가 포함되어 있는 경우) 가독성을 높이기 위해 루프를 안쪽으로 들여쓰는 것이 좋습니다.

A = zeros(5,100);
for m = 1:5
    for n = 1:100
        A(m, n) = 1/(m + n - 1);
    end
end

break 문을 사용하여 루프를 프로그래밍 방식으로 종료하거나 continue 문을 사용하여 루프의 다음 반복으로 건너뛸 수 있습니다. 예를 들어, magic 함수에 대한 도움말의 라인 개수(즉, 빈 라인 전까지의 모든 주석 라인 수)를 셉니다.

fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
    line = fgetl(fid);
    if isempty(line)
       break
    elseif ~strncmp(line,'%',1)
       continue
    end
    count = count + 1;
end
fprintf('%d lines in MAGIC help\n',count);
fclose(fid);

실수로 무한 루프(즉, 자체적으로 끝나지 않는 루프)를 만든 경우 Ctrl+C를 눌러 루프의 실행을 중지합니다.

참고 항목

| | | |

외부 웹사이트