유니티 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]);
}
index는 0으로 초기화하고, index가 characters.Length보다 작을 경우, 대괄호 안의 로직을 수행합니다.
그리고 index 값이 증감된 후 다시 조건이 true인지 확인하는 작업을 반복합니다.
characters.Length는 characters의 배열 길이를 의미하고, 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문 로직보다 더 간단하게 출력할 수 있습니다
다음에는 함수에 대해 알아보도록하겠습니다
'유니티' 카테고리의 다른 글
유니티 C# 프로그래밍 기초 - 클래스 생성 및 상속 (0) | 2022.04.05 |
---|---|
유니티 C# 프로그래밍 기초 - 함수 새로 선언하기 (0) | 2022.04.05 |
유니티 C# 프로그래밍 기초 - 조건문 if / else if /switch (0) | 2022.03.28 |
유니티 C# 프로그래밍 기초 - 이항/논리/삼항 연산자 (0) | 2022.03.27 |
유니티 C# 프로그래밍 기초 - 그룹형 변수, 배열로 간단하게 출력하기 (0) | 2022.03.27 |