[06]R 제어문 다루기2 (반복문)

반복문1 (for문)

주어진 조건에 따라 반복해서 문장을 수행해야 할 경우 반복문을 사용한다.

for문의 기본적인 구조는

for ( 변수 in 범위){
수행할 명령1
수행할 명령2
}

위와 같다. 범위만큼 순서대로 변수에 대입되어 수행할 명령1, 수행할 명령2 등을 수행한다.

구체적인 예로 설명하기 위해

여러명의 이름이 담긴 리스트가 있고 리스트의 이름을 넣어 “xx님 안녕하세요.” 라는 문장을 반복해서 출력하는 코드를 만들어보려고 한다.

 

list = c("철수", "영희", "길동", "민수")

for (i in list){
  print(paste(i, "님 안녕하세요."))
}

첫번째 줄에서, list라는 이름의 리스트에 철수, 영희, 길동, 민수를 선언해주었다.
for문을 이용해 list의 요소 수만큼 반복하여 이름을 호출해 “xx님 안녕하세요.”라는 인사말을 출력하게 하였다.

결과창에 리스트의 이름을 한번씩 반복해 인사말이 출력되었음을 볼 수 있다.

 

반복문2 (while문)

while문 역시 for문과 비슷한 기능으로 문장을 반복해서 수행한다. for문의 경우 반복할 횟수를 정해주게 되지만 while문은 조건을 정해놓고 문장을 반복하게 된다.

while문의 기본적인 구조는

while( 조건문 ){
수행할 문장1
수행할 문장2
}

위와 같다. while문은 조건문이 True인 동안에 수행할 문장이 반복해서 수행된다.

구체적인 예로 설명하기 위해

“환영합니다.”라는 인사말을 5번 반복하는 코드를 만들어보려고 한다.


i = 0
while( i<5 ){
    print("환영합니다.")
    i = i+1
}

첫번째 줄에서, 몇 번 반복했는지 while문의 조건문과 비교할 인덱스 변수 i를 0으로 선언해주었다.
while문을 이용해 만약 i가 5보다 작으면 “환영합니다.”를 출력하고 i에 1을 더하도록 하였다. i가 5가 되어 while의 조건문이 False가 되면 반복을 종료하도록 하였다.

결과창에 “환영합니다.” 문장이 5번 반복 출력되었음을 볼 수 있다.

 

반복문3 (repeat문)

repeat문은 수행할 문장을 반복하는 명령문이다. 무한 루프를 벗어나기 위해 분기문을 반드시 포함하여야 한다.

repeat문의 구조는

repeat {
수행할 문장1
수행할 문장2
분기문
}

위와 같다. 코드로 예시를 들어보면


z = 0
k = 1
repeat{
    if ( k>10 ) break
    z = z+k
    k = k+1
}

반복문 안에서 동작할 변수 z와 k를 선언해주고 repeat문을 종료하기 위한 조건을 if문을 이용해 분기문을 만들어 포함시켜줬다. 위 코드를 실행하면

위와 같이 변수 z의 값이 1부터 10까지 반복문을 통한 덧셈으로 55가 된 결과를 확인할 수 있다.

댓글 남기기