본문 바로가기
Dev/Unity(C#)

[Unity] C#에서의 제어문과 배열

by E.Clone 2018. 1. 3.

제어문(if문, if~else문, for문, while문)에 관한 내용은 간단한 설명으로 넘어가겠다.



제어문은 주어진 조건이 참인 경우 명령을 수행하게 된다.



예를 들어 if문의 경우


if(조건) {

명령1;

명령2;

또다른명령3;

{


if 다음에 있는 소괄호 안의 조건이 '참'이라면 중괄호 { } 안의 명령들을 수행하게 된다.


if(내가 민수보다 강의실에 먼저 왔다) {

민수가 앉을 자리를 맡아놓는다;

민수의 커피도 준비한다;

민수가 올 때까지 기다린다;

{


와 같이, 내가 강의실에 먼저 도착했을 경우 다음과 같은 명령들을 수행하게 되는 것이다.


실제로 쓰이는 것처럼 바꿔본다면,


if(A<B) {

A = B+1;

B = 0;

}


위 내용은 A가 B보다 작은 경우 A는 B보다 1 크게 만들어주고, 그 후 B는 0이 되도록 한다.



else문은 if의 다음에 쓰여 if문의 조건이 거짓인 경우 사용한다.



if(조건) {

명령1;

명령2;

{

else {

명령3;

명령4;

}


else문 오른쪽에는 소괄호 ( ) 가 붙지 않는다. else 속 중괄호 { } 의 명령이 수행되는 경우는 오직 if문 옆의 (조건)이 '참'이 아닐 경우 수행하게 된다.


if(오늘도 민수보다 먼저 왔다) {

민수의 자리를 맡는다;

민수의 커피도 준비한다;

민수가 올 때까지 기다린다;

{

else {

민수의 옆자리에 앉는다;

인사를 한다;

}


else문에 포함된 명령 두 개는 민수보다 먼저 오지 않는 경우 수행하도록 프로그램되어 있다.



else if문은 if문 이후에 쓰인다.


if(조건) {

명령1;

{

else if(또 다른 조건) {

명령2;

}

else if(또 다른 조건) {

명령3;

}

else {

명령4;

}


else if문은 if문 이후에 쓰인다.


if문의 조건이 거짓일 경우 else문으로 내려가듯이, 이 경우는 if문의 조건이 거짓이면 else if문의 조건을 따지게 된다.


else if문이 else문과 다른 점은 또 다른 조건이 붙는다는 것이고


이게 참이라면 역시 중괄호 { } 안의 내용을 수행하게 된다.


else if문의 조건이 거짓이라면 중괄호 안의 내용은 무시하고 다음 제어문을 진행하면 된다.


else문은 없어도 상관 없다.


if(오늘도 민수보다 먼저 왔다) {

민수의 자리를 맡는다;

민수가 올 때까지 기다린다;

{

else if(민수와 동시에 도착했다) {

함께 자리를 찾아 앉는다;

}

else {

민수의 옆자리에 앉는다;

인사를 한다;

}






for문은 반복형 제어문이다.


for(변수 초기화 ; 조건 ; 갱신내용) {

명령;

}


변수 초기화 : int number=1; 과 같이 변수 선언과 그 값을 지정해준다.


조건 : 참일 경우 중괄호 { } 안의 명령을 수행하도록 조건을 넣는다.


갱신내용 : number++; 처럼 반복 한 차례가 끝날 때마다 갱신할 내용을 넣는다.



for( 배속이 거지이다 ; 만족스럽지 못하다 ; 싸이버거를 먹는다 ) {

불평을 한다;

싸이버거를 주문한다;

}



초기 상태 : 배속이 거지이다.

조건 : 만족스럽지 못하다 → 참일 경우 중괄호 { } 내의 명령을 수행한다.

싸이버거를 먹는다 : 중괄호 내 명령을 수행한 후 행할 명령이다.


불평을 하고

싸이버거를 주문하고

싸이버거를 먹은 후에


다시 조건문으로 돌아간다.


' 나는... 만족스럽지 못한가...? '


이것이 참일 경우 다시 불평을 하면 된다.


만족스러울 경우에는 그 시점에서 for문을 종료하면 된다.



조건문이 참이 아니게 될 때까지 이것을 반복하는 게 for문이다.


숫자로 예를 들면


for ( int number=0 ; number<10 ; number++ ) {

Debug.Log("I have "number" Apples");

}


number가 하나씩 증가하며 0Apple부터 9Apple을 출력하는 콘솔창을 볼 수 있게 된다.




while문은 for문보다 간단하다. 


while(조건) {

명령;

{


조건이 참인 경우 명령을 수행하며 반복하고 조건이 참을 유지할 경우 계속 반복해주면 된다.


이 경우, while의 중괄호 { } 안에서 조건을 바뀌게 해주는 명령을 넣는 게 보통이다.


조건이 바뀌지 않는다면... 무한반복을 하게 될 테니까...





배열은 변수의 상위호환정도로 생각하면 되겠다.



변수가 많이 필요한 경우가 있다.


int number1;

int number2;

int number3;
int number4;
int number5;
int number6;
int number7;
int number8;
.

.


이런 경우를 포함한 프로그래밍의 단순화를 위해 고안된 것이 '배열'개념이다.


예를 들어 정수형(int형) 배열의 선언은 다음과 같이 한다.


int[] number = new int[100];


여기에서 new는 새롭게 만든다, 마련한다 라는 뜻으로 쓰여 이것을 풀어 쓴다면


int형 배열number에게 새로운 int형 자리 100개마련한다


정도가 되겠다.


위와 같은 문장으로 100개의 정수형 변수를 얻을 수 있고 각각 변수의 이름은


number[0] 부터 number[99]가 된다.


number[1]부터가 아님에 주의한다. number[100]은 존재하지 않음에도 주의한다.




반응형