유니티

유니티 C# 프로그래밍 기초 - 반복문 / while / for / foreach

nock_ji 2022. 3. 30. 00:03

유니티 C# 프로그래밍 

 

[ 반복문 ] & [ while / for / foreach ]

 

 

 


[ 반복문 ]

: 조건에 만족하면 로직을 반복하는 제어문 

 

 

[ while문 ]

조건이 ture일 때 로직을 반복합니다

*주의 : 조건식이나 코드블록 내에서 반복문을 제어하여 무한반복하지 않고 빠져나올 수 있도록 합니다

 

  • 기본 형식
while (조건) {
	//로직
    	}

 

  • while문 
int health = 30;

while (health > 0){
	health--;
    Debug.Log("데미지를 입었습니다" + health);
    }

health 값이 하나씩 감소하다가, 0이되면 로직 반복을 멈추고 종료합니다

즉, health의 출력값은 29부터 0까지 순서대로 콘솔창에 나타납니다

.

.

.

결과

 


 

while문 안에 if-else문을 포함하여 계속 감소하다가,

일정 값에 도달하면 문자열을 출력하고 종료하는 코드를 써보겠습니다.

 

int health = 30;

while (health > 0){
	health--;
        if (health >0)
        	Debug.Log("데미지를 입었습니다" + health);
        else
        	Debug.Log("사망하였습니다");
            
       	if (health == 10 ){
        	Debug.Log("해독제를 사용합니다");
            break;
            }
        }

첫 번째 if 문0이 되기 전까지 "데미지를 입었습니다"를 출력하고,

0 아래로 감소하면 "사망하였습니다"를 출력하도록 되어있습니다

 

두 번째 if 문은 위의 과정을 거친 후, health가 10이 되었을 때 "해독제를 사용합니다"를 출력하고 while문을 빠져나옵니다. 

 

결국 29부터 차례로 health가 감소하다가, 10이 되었을 때 break로 인해 모두 종료됩니다

.

.

.

.

결과

 


 

[ for 문 ]

변수를 연산하면서 로직을 반복실행함

 

  • 기본 형식
for (변수 초기화; 조건식; 반복식){
		//로직
        	}

순서  :  초기화 -> 조건식 -> true -> 로직실행 -> 반복식 -> 조건식 -> false -> 종료

 


 

  • 캐릭터가 상처를 10번 치료하는 로직
int health = 10;

for (int count = 0; count < 10; count++){
	health++;
  	Debug.Log("치료 중..." + health);
    	}

 

count 변수를 0으로 초기화하고 10 미만인지 조건을 확인한 후, 대괄호 안의 로직을 실행합니다

그 후 count를 증감하고, 조건에 맞는 지 확인하는 작업을 반복합니다

 

 

 

count가 0일 때, health는 11

count가 1일 때, health는 12

...

count가 9일 때, health는 20 이므로 '치료 중... 20'이 마지막으로 출력됩니다

.

.

.

.

결과

 


 

배열과 함께 for문을 사용해보겠습니다. 그 전에 그룹형 변수의 개수를 구하는 키워드도 함께 보겠습니다

 

 

 

**그룹형 변수 길이 구하기

 

  • 배열 :  변수명.Length

.

.

결과

3

 

 

  • 리스트 :  변수명.Count

.

.

결과

3

 


 

  • 배열의 길이를 구하는 키워드를 넣은 for문 입니다 

 

string[] characters = {"제시", "우디", "버즈" };

for (int index = 0; index < characters.Length; index++){
	Debug.Log("이 방에 있는 캐릭터 : " + characters[index]); 
    	}

 

index0으로 초기화하고, indexcharacters.Length보다 작을 경우, 대괄호 안의 로직을 수행합니다.

 

그리고 index 값이 증감된 후 다시 조건이 true인지 확인하는 작업을 반복합니다.

 

 

 

characters.Lengthcharacters의 배열 길이를 의미하고, 3과 같습니다

index가 0, 1, 2 일 때

characters[0], [1], [2]가 출력됩니다

.

.

.

.

결과

 


 

[ foreach ]

for문의 그룹형 변수 탐색에 특화되어 있는 반복문

 

  • 기본 형식
foreach ( 변수 in 데이터배열 )
	{
    	//실행할 코드
        }

 

 

 

foreach문은 규칙적인 데이터 구조를 가진 배열을 이용하는 반복문입니다.

 

string[] characters = {"제시", "우디", "버즈"};

foreach (string character in characters){
	Debug.Log("이 방에 있는 캐릭터 : " + character);
    	}

 

새롭게 character라는 문자열 변수를 선언하고, 이것이 characters 배열 안에 있습니다

그래서 characters차례대로 출력합니다

.

.

.

결과

위에서 사용했던 for문 로직보다 더 간단하게 출력할 수 있습니다

 

 

 

 

 


다음에는 함수에 대해 알아보도록하겠습니다