반응형
break, continue, return 등 반복문, 함수의 흐름을 제어할 수 있는 키워드에 대해 알아보자.
1. break
반복문을 돌다가 break를 만나게 되면 반복문은 그 즉시 종료되고(Loop문을 마무리 하지 않고 즉시), 다음 코드 블럭을 실행하게 된다.
아래 코드는 간단하게 짜 본 소수를 찾는 반복문인데, for 문을 실행하자마자 바로 조건을 만족하기에 계속해서 끝까지 loop문을 돌리는 것은 심각한 낭비가 된다. 따라서 break문을 통해 나머지 loop를 생략하고 바로 for문을 탈출할 수 있다.
namespace CSharp
{
class Program
{
static void Main(string[] args)
{
int num = 1000000; //소수: 자기 자신과 1로만 나뉘는 숫자
//int num = 97;
bool isPrime = true;
for (int i = 2; i < num; i++)
{
if((num % i) == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
Console.WriteLine("소수입니다!");
}
else
{
Console.WriteLine("소수가 아닙니다!");
}
}
}
}
2. continue
break와는 다르게 반복문을 즉시 종료하고 빠져나가는 것이 아니라, 반복문 내의 작업문을 건너뛸 때 사용한다.
즉, 현재 진행 중인 Loop를 즉시 중단하고 다음 Loop로 건너뛰어 작업을 진행하라는 명령어이다.
다음 코드는 1부터 100까지의 숫자를 돌면서 3으로 나뉘는 숫자만 출력하기 위한 쉽게 짜본 즉석 코드이다.
namespace CSharp
{
class Program
{
static void Main(string[] args)
{
for(int i=1; i<= 100; i++)
{
if ((i % 3) == 0)
continue;
Console.WriteLine($"3으로 나뉘는 숫자 발견 : {i}");
}
}
}
}
매번 loop에서 Console.WriteLine() 까지 들어갈 필요가 없는 코드이므로,
continue를 통해 if 문의 조건, 즉 3으로 나누었을 때 0이 되지 않는 경우에는 loop문을 점프해서 문자가 출력되지 않도록 해 주었다.
3. return
return은 반복문을 종료시킬 때 사용하기도 하지만, 함수 자체를 종료시킬 때 사용한다.
즉, 해당 함수를 탈출할 때 사용한다.
주의할 사항: void형인 함수에서만 사용 가능하다. 자료형일 경우 해당 자료형으로 return 해주어야 한다.
반응형