본문 바로가기

C#

[C#]3.반복문 - while과 for

while과 for 자체는 C에서 배웠으니 냅둡시다.


C에서 많은 분들이 봤던거.

while()

for()

이 두녀석은 프로그래밍 언어 어디를 따라가던지, 꼭 따라 붙습니다.

이미 익히 들어 아는 내용이기 때문에, 전 강의와 비슷하게 차이점만 설명하겠습니다.


while(1){}

이 코드를 봅시다.

컴파일이 될까요?


짐작하셨겠지만, 안됩니다.


전 강의인 조건문에서도 if(1)이 안됐었잖아요?

네. 같은이유 때문입니다.

C#에서는 while문의 조건도 이 아닌 논리값을 줘야합니다.


while(논리값){}

이렇게 들어가야해요!


아하! while(true){}

이렇게 써야되는겁니다!


이 이유에 대해서는 전 강좌를 참조해주세요.


자 다음.

for문입니다


for(1;1;1);

이 코드가 컴파일이 될까요?

C에서는 됩니다.

하지만 C#에서는 안됩니다.

이건 짐작 하셨을겁니다.


이번엔

for(1,true,1);

컴파일이 될까요?

안됩니다.

아니 이번엔 또 뭐가 문제야?


에러창을 봅시다

할당, 호출, 증가, 감소, 대기 및 새 개체 식만 문으로 사용할 수 있습니다. (CS0201) - C:\Users\USER\Documents\SharpDevelop Projects\psdof\psdof\Program.cs:19,8

네. 안되는 이유는 

for(*,논리값,*)

*부분에 식을 넣어줘야하기 때문입니다.

에러 메서지에서 처럼 a=5처럼 할당식을 넣어도 되고

어떤 함수를 호출해서 처리를해도 됩니다.

적어도 그냥 값을 넣는 멍청이 짓은 하지 말라고 있는겁니다.


왜 이짓을 할까요?

for(i=0;i<=n;i++)

이라는걸 적을때

for(i;i<=n;i++)

라 적는다면 C에서는 정상작동하지만

C#에선 문제 있다고 합니다.
이렇게 제약을 거니까 조금 버그가 발생할 확률이 줄어드는겁니다.


'C#' 카테고리의 다른 글

[C#]4. 배열  (0) 2017.01.24
[C#]2.조건문과 자료형 bool  (1) 2016.12.13
[C#] 1. 자료형과 변수 - char과 byte, 그 외  (2) 2016.12.09
[C#]윈도우 폼 프로그램 - 텍스트박스  (0) 2016.12.06
[C#] 윈도우 폼 프로그램 - 라벨  (0) 2016.12.06