Unity3d C# toolba 사용해보기

C# foreach문을 사용해보자


C#을 공부하다 보니 생소한 반복 문을 만났습니다.


foreach문 이라고 해서..  기존 프로그램 언어에서 알고 있는 for문과 같이 반복문이기는 하지만.. 조금 특이하네요..

배열을 위한 반복 문 이네요.. 사실 delphi를 하면서 좀 불편하긴 했거든요.. 1차원이든 2차원 배열 이든.. 아무튼 동적으로 선언 했다고 하면

배열을 반복으로 돌릴려면..

delphi라면..  이런 식으로 표현을 주로 했었는데요..

for  i := low(arr) to hight(arr) do
begin
   //코딩..
  showmessage( arr[i]);
end;

뭐 문법적으로 나쁘다는 것은 아닙니다.  하지만.. 옛날부터 이어져 온 언어 이어서 새로운 문법이 추가가 될 지언정 기존의 문법이 변경되는 일이 발생한다면.. 마이그레이션 등에  문제가 발생하기 때문에 그런 일은 거의 없다고 봐야겠죠.. 개발자들도 혼란스러워 할 거고요..

하지만.. C#의 경우 만들어 진지 얼마 안되는 언어 이어서 그런지.. 제가 봤을 때는 문법적으로 간결하고 효율적인 면이 많은 것 같습니다.

foreach의 경우도 그러한데요..
지금과 같은 것 이라면..
C#에서는 이렇게 표현 되어야겠습니다.

여기서 중요한 것은.. a라고 선언한 부분에 배열 안의 값이 들어온다는 것입니다.


foreach(int a in arr)
{
 Console.WriteLine(a);  // a라는 변수 안에 arr에 집어 넣었던 값들이 차례로 들어옴..
}

좀 사용 하다 보면 익숙해 지겠지만..  정말 간결하고 가독성이 좋은 것 같습니다.
괄호안에 { } 문장에 a = a[i]; 이런 식으로 해서 값을 삽입하는 것을 생략해 버렸네요.. 딱 봐서는 이해가 잘 안가는데 말이죠 ..;

또한.. 이것안에 선언을 꼭 해야 하는 불편함이 있고.. 이 문장을 빠져나가면 생성된 변수가 없어져 버리네요..;  아무튼 처음이라 정신이 없긴 하지만.. 이 문제는 많이 사용해보고 다른 대체 가능한 기능들이 무엇이 있는지 확인하면서 터득해보는 수 밖에..없어 보이네요..

아래는 Visul Studio 2013 Express 에서 테스트를 해본 것 입니다.

int형 배열을 선언하고 안에 1,2,3,4,6 이라는 값을 할당했습니다.
그리고 loop문을 돌려서 찍는거죠..;

이것 문을.. 사용하니 정말 간결해 지네요.. 간결해지면 가독성도 좋아지고 소스량도 줄어들어서 좋겠죠..?


C# foreach




틈틈이 시간을 내가면서 열심히 공부하고 있긴 합니다.  회사 다니면서 이것저것 해보려니 쉽지가 않네요 ^^;

보면..볼수록 델파이와 혼돈이 되기 시작해서 혼란스럽습니다 ㅎㅎ 기존 델파이 문법도 햇갈리기 시작하네요;;;













댓글