본문 바로가기

취미로 하는 게임코딩_gameCodingAsHobby/유니티unity로 게임 만들기

유니티08_C#_04_제어문_for_foreach_while

앞 글에 이어서 제어문 두번째 글이다.

반복문(Loop statement) : for , foreach , while

 

1. for

 

같은 작업을 여러 번 반복해야 할 때는 주로 for문을 사용한다.

 

기본 형태는 다음과 같다.

 

for(변수 초기화; 조건식; 변수 갱신)

{

    작업할 내용

}

 

for반복문의 실행 순서는 다음과 같다.

 

  1. 변수 초기화 값은 for문이 시작할 때 한 번만 실행함.
  2. 초기값이 조건식에 맞으면(true), 작업할 내용을 처리하고 그렇지 않으면 반복문을 종료함
  3. 작업 내용이 끝나면 변수를 갱신하고 다시 조건식에 맞으면 처리하고 그렇지 않으면 반복문을 종료함

 

반복문 예1

 

0부터 9까지 1씩 증가하면서 출력하는 스크립트는 다음과 같다.

 

  1.  9번줄: 반복에 사용할 변수 i를 만들고 초기값을 0으로 정한다.
  2.  변수의 조건은 i가 10미만이면 11번줄을 실행하고, 그렇지 않으면 반복문을 종료한다.
  3.  11번줄: i값을 Console창에 인쇄한다. 
  4.  9번줄: i를 1 증가한 후 조건식을 다시 확인한다.

스크립트를 저장 후 실행하면 아래와 같이 콘솔창에 인쇄한다.

 

반복문 예2

0부터 10 미만의 짝수를 인쇄하는 반복문은 다음과 같다.

 

 

반복문 예3

3이상 7이하 자연수를 출력하는 반복문은 다음과 같다.

 

 

반복문 예4

5부터 0까지 1씩 줄어드는 반복문은 다음과 같다.

 

 

반복문 예5

1부터 10까지 합(더한 값)을 출력하는 반복문은 다음과 같다.

 

9번줄: 합계에 사용할 변수 total을 만든다. (sum으로 해도 된다)

초기값은 0으로 한다.

10번줄: 반복 for문은 변수i 초기값을 1로 하고, i가 10보다 작거나 같을 때 까지 1씩 증가한다.

조건에 맞으면 12번줄을 실행한다.

12번줄: 변수total 에 i값을 더해서 저장한다.

14번줄: 반복문이 끝나면 변수total 값을 출력한다.

 

1-2. foreach문

 

foreach문은 여러 요소를 가지고 있는 데이터 구조에 접근할 수 있는 for 반복문의 변형이다.

여러 요소를 다루는 '배열' 부분에서 설명하기로 한다.

 

2. while문

while문도 반복에 사용하지만 조건을 하나만 사용할 수 있다.

while은 '~하는 동안'이라는 뜻이다.

그래서 조건이 참(true)인 동안은 계속 실행할 내용을 반복한다.

 

기본 형태는 다음과 같다.

 

while ( 조건식 )

{

    실행할 내용

}

 

예를 들어 1~5까지의 정수를 출력하는 코드는 다음과 같다.

 

위 코드에서 보듯이 while문은 for문의 초기화와 변수 갱신을 다른 곳에 정의한 형태라는 것을 알 수 있다.

while문은 반복 횟수가 명확하지는 않지만, 특정한 조건에서만 반복하고 싶을 때 사용할 수 있다.

 

break와 continue

제어문에서 흐름을 제어할 때는 break , continue를 사용한다.

 

break

'깨다, 부수다'는 뜻의 break는 해당 반복문에서 빠져나가게 한다.

조건문, 반복문 등에서 사용할 수 있다.

 

위에서 1부터 5까지 출력하는 코드를 break를 사용해서 작성하면 다음과 같다.

 

원칙적으로는 while문 예 처럼 조건식(i<6)으로 반복문을 종료하는 것이 코드도 깔끔하고 보기 좋다.

위 코드는 단지 break가 어떻게 작동하는지 설명하기 위해 작성한 것이다. 

 

continue

 

'계속하다'의 뜻을 가진 continue는 반복문에서만 사용할 수 있다.

continue는 본문(반복문) 끝까지의 코드를 건너뛰고 다음 반복으로 넘어가게 한다.

 

다음은 1부터 10까지의 정수 중에서 짝수만 출력하는 코드이다.

짝수2로 나눈 나머지가 0이고, 홀수는 1인 것을 이용한다.

홀수이면 continue를 사용해서 출력하지 않고 넘어가고 그렇지 않으면 출력하도록 코딩하면 된다.

 

10번줄: 변수i의 초기값은 1로 한다.

11번줄: i가 10보다 작거나 같을 때 까지 반복한다.

13번줄: 만약 i를 2로 나누었을 때 나머지(%)가 1과 같다면 (즉, 홀수 이므로)

15번줄: i값을 1증가하고 (여기서 i값은 2가 된다)

16번줄: continue 이므로 18, 19번 줄을 실행하지 않고 while조건식으로 돌아간다.

11번줄: i가 2이므로 조건이 true(참)이 되어 반복문이 실행된다.

13번줄: i값 2는 2로 나누었을 때 나머지가 1이 아니므로 if문을 건너뛰고 18번줄로 넘어간다.

18번줄: i값 2가 출력된다.

19번줄: i값이 1 증가하여 3이 되고 while조건식으로 돌아간다.

이 과정을 while 조건식이 true일 때 까지 반복한다.

 

만약 홀수만 출력하려면 if문 조건식을 다음과 같이 작성한다.

 

if ( i % 2 == 0 )

 

각 기호는 다음 글에서 정리하기로 하고 간단하게 설명하면 다음과 같다.

% 기호는 '나눈 후 나머지 값'을 나타낸다.

== 기호는 왼쪽과 오른쪽 두 값이 '같다'를 나타낸다.

즉, i % 2==0 의 뜻은 'i값을 2로 나눈 나머지는 0 과 같다' 이다.

 

 

끝.

Wraven...