This article is currently in the process of being translated into Korean (~99% done).
Loops
프로그램을 쓸때 다른 필수 기술은 반복이에요.코드 뭉치를 x번 반복 시키는 능력이죠.C#에서는, 4가지 다른 방법이 있어요.그리고 우리는 각각 하나씩 볼거에요.
while 반복문
while 반복문은 가장 간단한 친구에요.그러니 얘부터 시작해 볼게요.while 루프는 간단히 주어진 조건이 참이라면 코드 블럭을 실행합니다.작은 예제를 보여주고,설명을 더 해줄게요.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 0;
while(number < 5)
{
Console.WriteLine(number);
number = number + 1;
}
Console.ReadLine();
}
}
}
이 코드를 실행해 보세요.당신은 0부터 4까지의 멋진 숫자 목록을 얻을거에요.number는 처음에 0으로 정의 되었어요.그리고 루프에 코드가 실행 될때마다,number는 하나씩 증가해요.그러나 왜 number는 4까지 만 올라갈까요?이 조건이 참을 반환하려면,number는 5보다 적어야 해요.그러니 이 예제에서 보자면 코드에서 출력값은 5랑 같은 값까지 도달하지 못하는거죠.이러는 이유는 while 루프의 조건은 코드 블럭이 실행되기 전에 측정되기 때문이에요.
do 루프
do 반복문에서는 정반대에요.do 반복문은 while 반복문과 다른면에서는 똑같이 작동하나,do 반복문은 코드 블럭을 실행한 후 조건을 판별하죠.이렇게 되면 코드 블럭은 적어도 한번은 항상 작동하게 돼요.
int number = 0;
do
{
Console.WriteLine(number);
number = number + 1;
} while(number < 5);
출력값은 같아요.숫자가 5보다 커지면,루프에서 나가게 돼요.
for 반복문
for문은 좀 달라요.이것은 당신이 값을 포함하고 있는 변수를 가지고 있거나 당신이 얼마나 반복을 많이 원하는지 알때 선호돼요.여기 for문의 예제가 있어요.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 5;
for(int i = 0; i < number; i++)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
얘도 같은 출력값을 만들어요.그러나 보시다시피,for 반복문은 좀 더 정확하죠.for문은 3가지 부분으로 이루어져 있어요. 횟수를 세기 위한 변수를 만들고,변수를 테스트 하기위한 조건문을 만들고,그리고 카운터를 증가시키죠.
첫번째 부분에서,우리는 i 변수를 0으로 선언했고,이것은 한번만 실행되요.루프가 시작하기 전에요.나머지 두 부분은 각각 반복할떄 마다 실행돼요.매번,i는 우리의 number 변수와 비교되고,루프가 한번 더 돌아가죠.그 후,i는 1 증가해요.
이 프로그램을 돌려보세요,그리고 그 이후에,number 변수를 더 5보다 크거나 작은 수로 바꿔보세요.당신은 루프 횟수가 변하는 것을 볼 수 있을거에요.
foreach 반복문
우리가 볼 마지막 반복문은,foreach 반복문 입니다.이것은 아이템 콜렉션에 작동됩니다.예를들어 배열이나 다른 내장된 리스트 타입같은 애들이요.예제에서는 ArrayList라 불리는 간단한 리스트를 쓸거에요.이것은 배열같이 작동합니다.몰라도 걱정하지 마세요.나중에 챕터에서 우리도 알아볼 거에요.
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("John Doe");
list.Add("Jane Doe");
list.Add("Someone Else");
foreach(string name in list)
Console.WriteLine(name);
Console.ReadLine();
}
}
}
우리는 ArrayList의 객체를 하나 만들었습니다.그리고 거기에 우리는 아이템을 좀 넣었어요.우리는 foreach문을 사용해서 각각 아이템을 통해 실행하고 name 변수에 매번 도달한 아이템을 넣습니다. 이 방식으로,우리는 이름지어준 변수를 출력으로 가집니다.보시다시피,우리는 name 변수를 문자열 타입으로 선언했습니다.당신은 항상 foreach문에 어떤 자료형을 꺼낼건지 말해줘야 합니다.만약 여러가지 종류의 자료가 있다면,각각 항목을 object로 꺼내기 위해 당신은 특정한 클래스 대신 object 클래스를 사용해도 됩니다.
Collections와 함께 작성을 할 때, 대부분 다른 반복문을 사용하는 것보다 단순하기 때문에 foreach 반복문을 주로 사용하게 될 것입니다.