알다시피 루프는 테스트 식이 false가 될 때까지 코드 블록을 반복합니다. 하지만 때로는 테스트 식을 확인하지 않고 즉시 루프를 종료해야 할 때가 있습니다.
이때 break 문을 사용합니다. 문법:
break;
break 학습 전 다음 기초를 확인하세요:
for 루프
if...else
while 루프
예제: for 루프에서 break 문
using System;
namespace CSharpBreak {
class Program {
static void Main(string[] args) {
for (int i = 1; i <= 4; ++i) {
// 루프 종료 조건
if (i == 3) {
break;
}
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}
출력
1
2
위 프로그램에서 for 루프는 i = 1부터 4까지 4번 실행됩니다. 그러나 i가 3과 같아지면 break 문을 만납니다.
if (i == 3) {
break;
}
이제 루프가 즉시 종료되어 1과 2만 출력됩니다.
참고: break 문은 if..else 같은 결정문과 함께 사용됩니다.
예제: while 루프에서 break 문
using System;
namespace WhileBreak {
class Program {
static void Main(string[] args) {
int i = 1;
while (i <= 5) {
Console.WriteLine(i);
i++;
if (i == 4) {
// 루프 종료
break;
}
}
Console.ReadLine();
}
}
}
출력
1
2
3
위 예제에서 while 루프는 i = 1부터 5까지 실행되어야 합니다.
하지만 i가 4가 되면 break 문을 만납니다.
if (i == 4) {
break;
}
이제 while 루프가 종료됩니다.
C#에서 break 문 동작 원리
중첩 루프에서 break 문
break 문은 중첩 루프에서도 사용 가능. 예:
using System;
namespace NestedBreak {
class Program {
static void Main(string[] args) {
int sum = 0;
for(int i = 1; i <= 3; i++) {
// 외부 루프
// 내부 루프
for(int j = 1; j <= 3; j++) {
if (i == 2) {
break;
}
Console.WriteLine("i = " + i + " j = " + j);
}
}
Console.ReadLine();
}
}
}
출력
i = 1 j = 1
i = 1 j = 2
i = 1 j = 3
i = 3 j = 1
i = 3 j = 2
i = 3 j = 3
위 예제에서 break 문은 내부 for 루프 안에 있습니다. i == 2일 때 break 실행.
따라서 i = 2 값은 절대 출력되지 않습니다.
참고: break 문은 내부for 루프만 종료시킵니다. break가 내부 루프 안에 있기 때문입니다.