본문 바로가기

C++/Control Statements

C++ Control Statements

C++ 프로그래밍, 제어문 ( Control Statements )


goto : 프로그램의 흐름을 프로그램 코드 상의 임의의 위치로 이동하게 한다

goto 라벨; 형식으로 사용되며 라벨은 프로그램 코드 상에서 start : 와 같이 반드시 라벨 뒤에 콜른( : )을 추가해서 표시한다. 다음은 goto 문장을 이용하여 반복문을 구현한 경우이며 1~10까지 합산하고 그 결과를 출력하는 예이다

#include <iostream>

using namespace std;

int main() {

	cout << "gogo 제어문의 예" << endl;

	int i = 0;
	int sum = 0;

	start:
	sum += ++i;
	if(i<10) goto start;

	cout << "1~10까지 합산결과:" << sum << endl;

	return 0;
}


void exit ( int exitCode ) 

운영체제에 따라서는 프로그램 종료시에 종료코드(exitCode)를 필요로 하는 경우도 있다. 일반적으로 프로그램이 정상적으로 종료되는 경우에는 exit ( 0 ) 와 같이 0을 사용하고, 그 외의 경우에는 0이 아닌 다른 수를 사용한다. 

다음 예제는 임의의 수를 추출하여 10인 경우에 exit() 를 이용하여 프로그램을 종료하는 예이다

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main() {

	cout << "exit() 예" << endl;

	int i = 0;

	std::srand(time(NULL));

	while(true) {

		i = rand() % 10 + 1;
		cout << i << " ";
		if(i==10) {
			cout << i << " 프로그램 종료..." << endl;
			exit(0);
		}
	}
	return 0;
}


날짜를 출력하는 예 ( C언어의 헤더파일 이름 앞에 c 를 붙여서 사용한다. stdlib.h -> cstdlib, time.h -> ctime )

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main() {

	cout << "날짜 구하기" << endl;

	struct tm* datetime;

	time_t t;

	t = time(NULL);
	datetime = localtime(&t);

	cout << datetime->tm_year + 1900 << " 년 ";
	cout << datetime->tm_mon + 1 << " 월 ";
	cout << datetime->tm_mday << " 일 ";
	cout << datetime->tm_wday << " 요일 ";
	cout << datetime->tm_hour << " 시 ";
	cout << datetime->tm_min << " 분 ";
	cout << datetime->tm_sec << " 초 ";

	return 0;
}


switch 문장을 이용하여 숫자를 요일로 변환하는 예

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main() {

	cout << "switch 문장의 예" << endl;

	struct tm* datetime;

	time_t t;

	t = time(NULL);
	datetime = localtime(&t);

	cout << datetime->tm_year + 1900 << " 년 ";
	cout << datetime->tm_mon + 1 << " 월 ";
	cout << datetime->tm_mday << " 일 ";
	cout << datetime->tm_wday << " 요일 ";
	cout << datetime->tm_hour << " 시 ";
	cout << datetime->tm_min << " 분 ";
	cout << datetime->tm_sec << " 초 ";

	string sWday;
	switch(datetime->tm_wday){
		case 1: sWday = "월"; break;
		case 2: sWday = "화"; break;
		case 3: sWday = "수"; break;
		case 4: sWday = "목"; break;
		case 5: sWday = "금"; break;
		case 6: sWday = "토"; break;
		case 7: sWday = "일"; break;
	}

	cout << ", 오늘의 요일: " << sWday << "요일" << endl;

	return 0;
}