swith문에서 등장했던 break는 루프를 벗어날 때 사용합니다.
break는 swith문에서만 아니라 다양하게 사용할 수 있습니다.
대표적으로 반복문인 while문에서 보면
int num;
while (1) {
printf("숫자를 입력해주세요(3입력시 탈출) : ");
scanf("%d", &num);
printf("입력된 숫자 : %d \n", num);
if (num == 3) {
printf("탈출 \n");
break;
}
}
printf("종료 \n");
while (1)은 무한 반복입니다. 하지만 3을 입력 받으면 break를 이용해서 while문을 벗어날 수 있습니다.
이렇게 while문 내에 조건문을 넣어 무한루프에서 벗어날 수 있게 만들어 주는 경우도 있습니다.
for문에서도 예를들어 구구단을 5단만 출력하기 싫다면
for (int i = 2; i < 10; i++) {
for (int j = 1; j < 10; j++) {
int num = i * j;
if (i == 5)
break;
printf("%d X %d = %d \t",i,j, num);
}
printf("\n");
}
5단에서 break를 사용 다음 6단으로 넘어갈 수 있게 해 줍니다.
*중첩 반복문(반복문 안에 반복문)에서 break 사용할 때 break가 들어간 반복문만 벗어나는 겁니다.
(break는 하나의 루프만 벗어날 수 있습니다.) 그래서 break의 위치도 중요합니다.
continue문은 현재 실행 중인 코드를 생략하고 다음 코드로 넘어갑니다.
반복문에서 continue문을 보면
int num = 0;
while (1)
{
num++;
if (num % 3 == 0)
continue;
printf("num = %d \n", num);
if (num == 40)
break;
}
num은 루프가 시작되면 1씩 증가하고 3으로 나눴을 때 나머지가 0이면 continue문이 실행되게 했습니다.
num이 40이 되면 break가 실행돼서 무한 반복인while (1)을 벗어나게 했습니다.
결과를 보면
3의 배수들은 출력이 생략된 걸 볼 수 있습니다.
continue가 실행되면서 뒷부분의 코드를 모두 생략하고 다음 루프로 넘어가게 돼서 3의 배수들은 출력이 생략된 모습을 보여줍니다.
continue는 특정한 값이나 조건에 실행되는 코드를 생략하고 싶을 때 많이 사용합니다.
마지막으로
return은 함수에서 사용합니다.
현재 함수를 끝내고 값을 반환한다는 의미입니다.
그래서 return을 사용하면 즉시 함수를 끝내버립니다.
break랑 다른 개념이기 때문에 구분해서 사용해야 합니다.
위에 break예제에서 return으로 변경해서 실행해보면
int num;
while (1) {
printf("숫자를 입력해주세요(3입력시 탈출) : ");
scanf("%d", &num);
printf("입력된 숫자 : %d \n", num);
if (num == 3) {
printf("탈출 \n");
return 0;
}
}
printf("종료 \n");
마지막 줄에 printf("종료 \n");가 실행되지 않고 종료해버립니다.
반환된 return값도 표시해줍니다.
main에서 반환된 return값은 운영체제에 반환됩니다.
'공부 자료실 > C언어' 카테고리의 다른 글
C언어 - 지역변수, 전역변수 (0) | 2020.06.22 |
---|---|
C언어 - 함수(function) (0) | 2020.06.18 |
C언어 - 반복문 for(), while() (0) | 2020.06.16 |
C언어 - 조건문 if(), swith() (0) | 2020.06.15 |
C언어 - 연산자 (0) | 2020.06.12 |
댓글