다음: 반복 탈출문, 이전: 사후 거짓 조건 반복문, 상위 문서: 명령문 [차례][찾아보기]
for
문을 사용하면, 반복 횟수를 더 간편하게 셀 수 있습니다. for
문의 일반적인 형식은
아래와 같습니다.
for 변수 = 표현식 몸체 endfor
몸체에는 모든 표현식과 표현식 목록을 넣고, 표현식에는 모든 올바른 표현식을 넣으며, 변수는 지정된 형식이 있습니다. 보통 변수에는 간단하게 변수 이름이나 색인한 변수를 넣습니다. 표현식의 값이 구조체이면, 변수 또한 원소가 두 개인 벡터이어야 합니다. 구조체 원소 훑기를 참고하십시오.
for
문에 있는 할당 표현식은 보통 때의 할당 표현식과 조금 다르게 작동합니다. 표현식의 최종 결과를 할당하는
대신, 표현식의 각 열을 차례로 변수에 할당합니다. 표현식이 범위, 행 벡터, 스칼라이면, 변수의
값은 반복문이 돌 때마다 스칼라가 됩니다. 변수가 열 벡터 또는 행렬인 경우, 변수는 반복문이 돌 때마다 열 벡터입니다.
아래 예시가
for
문을 사용하여 피보나치 수열 앞의 열 개 원소를 담은 벡터를 만드는 다른 방법을 보여줍니다.
fib = ones (1, 10); for i = 3:10 fib(i) = fib(i-1) + fib(i-2); endfor
이 부호는 먼저 표현식 3:10
을 평가하여, 3부터 10까지의 값 범위를 만듭니다. 그리고 나서 변수
i
에 범위의 첫 번째 원소를 할당하고, 반복문 몸체를 한 번 실행합니다. 반복문 몸체 끝에 다다르면, 변수
i
에 범위의 두 번째 원소를 할당하고, 반복문 몸체를 다시 한 번 실행합니다. 이 과정을 할당할 원소가 없을 때까지
계속합니다.
for
문으로 행렬과 낱칸 배열을 훑는 것도 가능합니다. 예시입니다.
disp ("Loop over a matrix") for i = [1,3;2,4] i endfor disp ("Loop over a cell array") for i = {1,"two";"three",4} i endfor
이 경우에는 변수 i
가 행렬 또는 낱칸 배열인 행렬의 열의 값을 갖습니다. 그래서 반복문을 처름 두 번 돌고나면,
두 열 벡터 [3;4]
가 따르는 [1;2]
를 만들고, 낱칸 배열도 비슷하게 반복합니다. 이를
아래처럼 다차원 배열로 확장할 수 있습니다. 예시:
a = [1,3;2,4]; c = cat (3, a, 2*a); for i = c i endfor
이 경우에는, 다차원 행렬 c가 reshape (c, rows (c), prod (size (c)(2:end)))
로서
2차원 행렬이 되고, 위에서 2차원 행렬을 반복하는 것과 같이 이 행렬을 반복합니다.
모든 for
문을 while
문으로 대신할 수 있지만, 옥타브에 이 두 가지 명령문이 있는
이유는,
for
문이 보통 덜 수고롭고 사고하기에도 자연스럽기 때문입니다. 반복문에서 반복 횟수를 세는 것은 매우 흔한 일이며,
반복문의 일부로 횟수를 세는 것이 따로 횟수 세기 기능을 구현하는 것보다 생각하는 데에 편합니다.
• 구조체 원소 훑기: |
다음: 반복 탈출문, 이전: 사후 거짓 조건 반복문, 상위 문서: 명령문 [차례][찾아보기]