15.4 break
/next
arguments
break
인수는 루프가 어떤 반복에 있든 상관없이 즉시 루프를 종료하는 데 사용됩니다. break
인수는 일반적으로 조건이 평가되는if
문에 포함되며, TRUE
이면 루프를 벗어나고 FALSE
이면 다음 번 루프가 진행됩니다. 다른 루프 내부에 루프가 있는 중첩 루프 상황에서 이 break
문은 평가중인 루프에서 종료하는 역할을 수행하게 됩니다.
break
명령문의 플로우 차트는 다음과 같습니다.
다음의 예에서for
루프는x
의 각 요소에 대해 반복됩니다. 그러나 x
의 값이 3
과 같으면 for
루프 프로세스가 중단되고 종료됩니다.
# break의 예
<- 1:5 # x 벡터를 정의합니다.
x
for (i in x) { # for 반복구문 : i를 x의 값 1에서부터 5가 될 때까지 반복 시행합니다.
if (i == 3){ # if 조건문 : i 값이 3과 같은지 확인합니다.
break # 조건이 TRUE 이면 break 합니다.
}print(i) # i를 출력합니다.
}
## [1] 1
## [1] 2
next
인자는 루프를 종료하지 않고 현재 반복되는 루프를 건너 뛰고 싶을 때 유용합니다.
next
명령문의 플로우 차트는 다음과 같습니다.
next
를 만나면 R은 추가 평가를 건너 뛰고 루프의 다음 반복을 시작합니다. 이 예에서for
루프는x
의 각 요소에 대해 반복 시행됩니다. 그러나 3과 같은 값을 갖는 요소에 도달하면 요소를 print
하는 for
루프의 실행을 건너 뛰고 다음 반복을 실행하게 됩니다. 즉, next 이하의 블록을 실행하지 않고 for
로 올라가서 다음 번 반복 시행을 검사합니다.
# next의 예
<- 1:5 # x 벡터를 정의합니다.
x
for (i in x) { # for 반복구문 : i를 x의 값 1에서부터 5가 될 때까지 반복 시행합니다.
if (i == 3){ # if 조건문 : i 값이 3과 같은지 확인합니다.
next # 조건이 TRUE 이면 next에 의해 다음 반복을 시행합니다.
}print(i) # i를 출력합니다.
}
## [1] 1
## [1] 2
## [1] 4
## [1] 5
앞의 break
구문 예에서는 x의 요소 값이 3이 되기 전까지의 print
구문이 2번 반복 실행되는 반면에, next
구문 예에서는 x의 요소 값이 3인 경우만 print
를 하지 않고 print
를 4번 반복 실행함을 알 수 있습니다.