배열과 반복문은 상당히 밀접한 관계가 있어 둘을 병행하면서 진행중이다.
이전에 for 문을 배웠는데 내용은 알고 있을거라고 생각한다.
for 문 외에도 while 과 foreach 는 상당히 자주 사용된다.
while 문 같은 경우는 기본이 무한반복이다.
기본 형식은 다음과 같다.
while(조건)
{
실행내용
}
10보다 작은 양의 정수를 출력하는 예제를 보자.
int i = 1;
while(i<10)
{
MessageBox.Show(i.ToString());
i++;
}
위 예제의 경우 i 가 최초 1이다.
1 < 10 은 참이기 때문에 내부 내용을 실행한다.
1을출력하고 i 를 ++ 해준다.
다시 처음으로 돌아가면 i 가 2이다.
2< 10 은 참이기 때문에 내부 내용을 실행한다.
2를출력하고 i 를 ++ 해준다.
이런식으로 i가 10보다 작으면 계속 실행하게 된다.
그런데 이게 막상 프로그램을 짤때 보면 좀 헷갈린다.
조건을 지정해줄려면 다 생각하고 만들어야 하기때문에 나는 대체로 다음과 같이 사용한다.
int i = 1;
while(true)
{
if (i<10)
{
MessageBox.Show(i.ToString());
i++;
}
else
{
break;
}
}
첫번째 코드와 완전히 같은 의미인데 while(true) 할경우 무한루프를 시작한다.
그리고 특정조건이 되면 break 를 해주면 while 문을 빠져나가게 된다.
개인적인 취향이기때문에 위쪽 코드를 쓰던 아래쪽 코드를 쓰던 상관은 없다.
단 아래쪽 코드를 사용할경우 break 를 깜빡하면 무한루프를 돌기때문에 어떤형태이든 while 문을 빠져나갈수 있게 만들어줘야한다.
앞장에서 한 예제를 보면 배열에 1~100 까지 숫자를 넣는 부분을 while 을 사용해서 만들어보면 아래와 같다.
int [] ar = new int[100];
int n = 0;
while(true)
{
if(n<100)
{
ar[n] = n+1;
}
else
{
break;
}
}
코드는 이해 될거라고 생각하고 넘어간다.
while 외에 do while 문도 있는데 해당구문은 막상나도 실제로 쓴적은 없다.
아래 링크에서 어떤내용인지만 읽어보자.
www.csharpstudy.com/CSharp/CSharp-looping.aspx
다음으로 foreach 문을 알아보자.
해당구문도 엄청 자주 사용되는데 기본형식은 다음과 같다.
foreach(형식 변수명 in 대상)
{
}
간단한 예제로 확인해보자.
int[] ar = {1,2,3};
foreach(int n in ar)
{
MessageBox.Show(n.ToString());
}
ar 이라는 배열에 1,2,3 이 들어가있는데 해당 원소들에 대해서 모두 int n 이라는 변수에 담아서 출력한다는 의미이다.
위 코드는 아래와 같이 써도 같은 의미가 된다.
int[] ar = {1,2,3};
foreach(var n in ar)
{
MessageBox.Show(n.ToString());
}
int 나 string 등 형식을 일일이 지정해주지않고 var 라고 쓰면 대상의 원소의 형태로 컴파일러가 알아서 지정해준다.
즉위코드 두개는 완전히 동일하게 작동한다.
분기문 , 반복문 , 배열등은 상당히 중요하다.
언어관계없이 어디든 쓰이기때문에 계속 반복해서 연습하기 바란다.
***숙제 : 1 ~ (50보다큰 첫번째7의 배수의 숫자) 까지의 합계를 구하는 프로그램을 만들어보자.
'[ Program ] > c#스터디' 카테고리의 다른 글
26.구구단출력기 만들기 (0) | 2021.10.09 |
---|---|
25.사칙연산기 만들기 (0) | 2021.10.09 |
23.배열2 (0) | 2021.10.09 |
22.배열1 (0) | 2021.09.26 |
21.반복문1 - for (0) | 2021.09.26 |
댓글