C# 반복문에 대해 학습한 내용 정리, i++ / ++i 증감식 차이점 비교

728x90

반복문 for, while, 재귀

유니티 게임 개발 뿐만 아니라, 알고리즘 테스트부터 개발 전체는 반복문의 연속으로 이루어져있다고 봐도 무방하다. 반복문에 대해 공부했던 내용을 간단히 정리해보겠다.

 

가장 대표적인 반복문인 for문은 ~에서 ~까지(한정되어 있음)를 의미한다. 

작성 방법은 for(초깃값 설정;  조건식; 증감) {할 것} 으로 초깃값 설정 -> 조건식 -> 할것 -> 증감 -> 조건식...(반복)으로 실행 순서가 정해진다.

for문에서 보통 증감식 부분은 i++ 또는 ++i로 작성한다. 여기서 i++과 ++i 차이를 많이 헷갈려 하는데 다음과 같다.
1) i++의 경우 다음 조건식에서 결과를 볼 수 있지만 ++i는 바로 결과를 확인할 수 있다.
2) 속도가 ++i가 더 빠름, 내부적으로 i++는 더한 결과를 저장하는 임시변수를 생성해서 그 다음 조건식에 리턴해준다.

    하지만 ++i는 결과값을 저장하지 않고 바로 증가시켜버란다.(한번에 가는 개념)

※ i++이나 ++i의 결과값은 어차피 같으니 어떤 방식을 써도 상관은 없으나, c++을 사용해서 방대한 데이터를 처리할 때는 최적화와 관련된 이슈가 있다고 하니 참고하면 되겠다. 

 

추가적으로 for문을 0부터 100까지 돌리는 거보다 100에서 0까지 거꾸로 처리하는게 속도가 더 빠르다고 함 

 

while 반복문은 ~동안으로 조건이 필요하고, 한정이 없으며, 조건 만족할 때까지 계속 돌린다.

 

배열은 데이터의 크기를 연속해서 잡아놓고 연속된 공간에 하나하나 집어넣는 집합이다.

여기서 배열의 방 갯수의 크기가 정할 수 있고, 각 방마다 인덱스 번호로 관리할 수 있다.

 

배열은 자료형[] 변수; 형태로 선언한다.

int b;   -> 컴퓨터가 일단 4byte를 잡는다.

int[] a; -> 컴퓨터가 값도 모르고 사이즈도 모른다.

사이즈와 변수를 모두 선언해 주는 것을 '배열의 초기화' 라고 부른다.

 

int[] a = new int[3] -> 세칸짜리 사이즈를 의미한다.

int[] a = new int[3] {2, 0, 5} -> 세 칸짜리 방에 세 변수가 들어간다.

int[] a = {2, 0, 5} -> 배열의 크기를 굳이 선언하지 않고, 변수를 입력해주면 컴퓨터는 알아서 3 크기를 메모리에 할당한다.

 

다음 방식으로도 배열을 초기화 할 수 있다.

int[] a new int[3];

a[0] = 2;
a[1] = 0;
a[2] = 5;

다음과 같이 반복문을 활용해 배열을 초기화해 줄 수 도 있다.

for(int i = 0; i <= 100; i++)
{ a[i] = i; }

 

 

728x90