c언어 break문, goto문, continue문 알아보기(재테크, 주식, 코인 매매 자동화)
네 안녕하세요, 이번 포스팅에서는 c언어에서 반복문과 조건문 등을 쓸 때 자주 쓰이는 문법인 break, goto, continue문에 대하여 알아보는 시간을 가져보려 합니다.
이들은 반복문을 제어할 때 자주 쓰이기 때문에 그만큼 중요하고,
사용법을 잘 숙지를 하셔야 합니다.
그럼 지금부터 시작하도록 하겠습니다.
1. break문
break문은 반복 루프를 벗어날 때 쓰는 문법입니다.
이 문장이 실행이 되면 루프를 빠져나오게 됩니다.
for 루프에서도 많이 쓰이지만,
무엇보다도 while 루프에서 더 자주 쓰입니다.
그 이유는 보통 while 루프는 시간 단위로 돌리거나, 증감률, 큰 범위를 다루는 무한루프를 굉장히 많이 사용하기 때문에 돌아가는 시간이 매우 깁니다.
다시 말하면 업무 자동화를 시킬 때 많이 씁니다.
그래서 빠져나오는 장치를 걸어두지 않으면 계속해서 작업을 하게 되기 때문에 쓰레기 데이터도 많이 쌓일 수 있고,
나중에 용량 부족 사태를 초래할 수도 있습니다.
그러면 간단한 예제를 통하여 사용방법을 알아보도록 하겠습니다.
#include <stdio.h>
#define SEED_MONEY 1000000
int main()
{
int year = 0, money = SEED_MONEY;
while(1)
{
year++;
money += money * 0.30;
if(money > 10 * SEED_MONEY)
{
break;
}
}
printf("%d년이 걸렸습니다.\n", year);
return 0;
}
이건 실제 경우를 본떠서 만든 예시입니다.
우리가 재테크 자동화를 할 때 이러한 문법을 사용하기 때문입니다.
이 경우에는 본인이 투자한 원금의 10배가 되는 순간에 돈 굴리기를 종료하는 예시를 들었습니다.
이렇게 쓰는 방법이 있고, 여기서 원금 증감이 아니라 수익률의 증감률을 보고서 종료나 매도 및 매수를 시킬 수도 있고,
주식이라면 개장 시간과 폐장 시간을 계산하여 매크로 작동 시간과 종료 시간을 입력하여 돌릴 수도 있습니다.
하지만 지금 이 글을 보시는 여러분들은 아직은 반복문을 쓰는 것이 조금은 미숙할 수 있으니, 아주 간단한 예시를 들어보도록 하겠습니다.
#include <stdio.h>
#include <math.h>
int main()
{
double rn;
while(1)
{
printf("실수를 입력하세요 : ");
scanf("%lf", &rn);
if(rn < 0.0)
{
break;
}
printf("%f의 제곱근은 %f입니다.\n", rn, sqrt(rn));
}
return 0;
}
여기에서 루프를 빠져나가는 장치는 음수를 입력하는 것입니다.
그 이유는 음수를 입력하게 되면 실수근이 나오지 않기 때문입니다.
그리고 제곱근 등 딱 떨어지지 않는 실수 값을 구하고 싶으면 <math.h>라는 헤더 파일을 불러와서 sqrt()라는 함수를 써서 나타내야 합니다.
그럼 결과를 보도록 하겠습니다.
실수를 입력하세요 : 7
7.000000의 제곱근은 2.645751입니다.
실수를 입력하세요 : 8
8.000000의 제곱근은 2.828427입니다.
실수를 입력하세요 : 3
3.000000의 제곱근은 1.732051입니다.
실수를 입력하세요 : 2
2.000000의 제곱근은 1.414214입니다.
실수를 입력하세요 : -1
PS C:\Users\사용자명\AppData\Local\Temp>
이런 식으로 음수를 입력하게 되면 자동으로 루프가 종료가 됩니다.
2. goto문의 활용 방법
goto문은 제가 예전에 포스팅을 한 번 한 적이 있었는데, 잘 쓰지 않는다고 했었습니다.
하지만 무한루프를 돌릴 때는 간혹 사용을 합니다.
그 이유는 간혹 루프를 돌리다가 문제가 생겼을 경우에 단번에 빠져나오게 하는 문법이 바로 goto문이기 때문에 비상장치로 사용을 합니다.
그리고 break문과 가장 큰 차이는 break문은 하나의 루프만 빠져나오지만, goto문은 다수의 루프를 빠져나올 수 있습니다.
그럼 간단한 예제 코드를 한 번 작성을 해보도록 하겠습니다.
#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i < 10000; i++)
{
for(j = 1; j < 50; j++)
{
if(_kbhit())
{
goto OUT;
}
printf("*");
}
printf("\n");
}
OUT:
return 0;
}
이렇게 작성을 할 수 있습니다.
그리고 주의를 할 점은 goto가 가리키는 문장 뒤에는 항상 콜론(:)이 존재해야 합니다.
세미콜론(;)을 쓰면 안됩니다.
그럼 실행 결과를 한 번 보도록 하겠습니다.
*************************************************
*************************************************
*************************************************
*************************************************
*************************************************
*************************************************
*************************************************
*************************************************
*************************************************
**********************************
PS C:\Users\사용자명\AppData\Local\Temp>
이렇게 나옵니다.
제가 키보드를 하나라도 건들면 바로 루프는 종료됩니다.
3. continue문
continue문은 멈추거나 빠져나오는 것이 아니라 건너뛸 때 씁니다.
우리가 코드를 실행시키는데 필요 없는 것들이 보일 때 그런 것들을 생략할 수 있게 해주는 문법입니다.
사용법도 break문을 쓰는 것과 똑같습니다.
그럼 간단한 코드를 작성을 해보도록 하겠습니다.
#include <stdio.h>
int main()
{
char lt;
while(1)
{
printf("소문자를 입력하세요 : ");
scanf("%c", <);
if(lt == '0')
{
break;
}
if(lt < 'a' || lt > 'z')
{
continue;
}
lt -= 32;
printf("변환된 대문자는 %c입니다.\n", lt);
}
return 0;
}
이렇게 작성을 할 수 있습니다.
그럼 결과를 한 번 보도록 하겠습니다.
// 범위에 있는 글자를 입력했을 경우
소문자를 입력하세요 : y
변환된 대문자는 Y입니다.
// 범위를 벗어난 기타 문자를 입력했을 경우
소문자를 입력하세요 : ㄱ // 생략
// 0을 입력했을 경우
소문자를 입력하세요 : 0
PS C:\Users\사용자명\AppData\Local\Temp>
이렇게 잘 나오는 것을 보실 수가 있습니다.
여기까지 break문, goto문, continue문을 사용하는 방법에 대하여 알아보았습니다.
다음 포스팅에서는 지금까지 배운 것들을 이용하여 여러 가지 문제들을 풀어보며 코딩 실력을 늘리는 시간을 가져보도록 하겠습니다.
긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~
'c언어' 카테고리의 다른 글
c언어 함수에 대하여 알아보기(라이브러리 함수, 사용자 정의 함수) (0) | 2022.12.04 |
---|---|
c언어 반복문(for문, while문) 이용하여 여러 가지 문제 풀어보기(최대공약수 찾기, 반감기 구하기, 숫자 추측하기 게임 만들기, 직각 삼각형 찾기, 복리 이자 계산하기, 수학 문제 자동으로 생성.. (0) | 2022.12.04 |
c언어 for문 직접 사용해보면서 간단한 예제 풀어보기(1부터 임의의 수 n까지의 합 구하기, 세제곱 값 구하기, *로 네모 그리기, 팩토리얼 값 구하기(for문 이용), 팩토리얼 값 구하기(while문 이용).. (0) | 2022.12.04 |
c언어 for문 알아보기 (0) | 2022.12.04 |
c언어 do_while문 알아보기 (0) | 2022.12.04 |
댓글