제어문, 조건문

김동현·2022년 4월 12일
0

#include
#include

using namespace std;

int main()
{

////srand(time(NULL));
////int num = rand() % 10 + 1;
////int num_1;
////
////cout << "정답을 입력하시오 : ";
////cin >> num_1;

////num == num_1 ? cout << "당첨" : cout << "꽝! " << "정답은 " << num << "이었습니다.";
////cout << endl;

/*
	제어문		데이터(타입) / 연산자 / <제어구조>

	1. 조건문 : 특정 조건에 따라서 실행문을 실행할지 안할지 제어 : if / switch
	2. 반복문 : 특정 조건에 따라서 실행문을 일정 횟수만큼 반복 실행 제어 : while / for

	조건문
	1_1. if 문

	if (조건식) // 참일 시 실행문1 실행 참이 아닐 때 실행문2 실행
	{
		실행문1;
	}
	else if (조건식2)
	{
		실행문3;
	}
	else
	{
		실행문2;
	}

	조건문 실습1.
	정수를 하나 입력 받아서
	입력 받은 숫자가 10보다 크면 "입력된 숫자가 10보다 큽니다." 출력
	10 이하 9초과 이면 "9보다 큽니다." 출력
	9 이하 6초과 이면 "6보다 큽니다." 출력
	그 이외에는 "6보다 작거나 같습니다." 출력

	1_2. switch문

	switch (정수형 변수)
	{
		case 정수1:
			실행문1;
		break;

		case 정수2:
			실행문2;
		break;

		case 정수3:
			실행문3;
		break;

		default:
			실행문4;		// 해당하는 정수값이 없을 때
		break;
	}

	switch문 실습.
	당신의 고향은 어디입니까?
	1. 서울		2. 양평		3. 광주		4. 대전		5. 제주도
	_1

	안녕하세요. 당신의 고향은 서울이군요.
	안녕하수꽝. 혼저옵서예.
	5개 중에 선택해 주세요.

	반복문
	2_1. while문

	while (조건식)
	{
		실행문;
		조건식을 바꾸는 실행문;	// while문을 중단시키는 첫번째 방법
		
		//or

		if (조건식)
		{
			break;				// while문을 중단시키는 두번째 방법
		}
	}

	do-while문

	do
	{
		실행문;
	}
	while (조건식);

2_2. for문

for ((1)초기식; (2)조건식; (3)증감식)  // 세미콜론은 초기식과 조건식만 들어간다
{
	(4)실행문;
}
(1) -> (2) -> (4) -> (3) -> (2) -> (4) -> (3) -> .... 조건식의 결과값이 0(false)가 나올때까지

*/

int input_number;

cout << "숫자를 입력하시오 : ";
cin >> input_number;

if (input_number > 10)
{
	cout << "입력된 숫자가 10보다 큽니다." << endl;
}
else if (input_number <= 10 && input_number > 9) //(input_number == 10) 으로 작성해도 문제없음 (input_number > 9) 위의 if 를 통과하지 못하였기에 저렇게만 써도된다
{
	cout << "9보다 큽니다." << endl;
}
else if (input_number <= 9 && input_number > 6) //(input_number > 6) 으로 해도 문제없음
{
	cout << "6보다 큽니다." << endl;
}
else
{
	cout << "6보다 작거나 같습니다." << endl;
}

//switch문 예제

int home;

cout << "당신의 고향은 어디입니까?" << endl << "1. 서울    2. 양평    3. 광주    4. 대전    5. 제주도" << endl;
cin >> home;

switch (home)
{
	case 1:
	cout << "안녕하세요 당신의 고향은 서울이군요." << endl;
	break;

	case 2:
		cout << "안녕하세요 당신의 고향은 양평이군요." << endl;
	break;

	case 3:
		cout << "안녕하세요 당신의 고향은 광주군요." << endl;
	break;

	case 4:
		cout << "안녕하세요 당신의 고향은 대전이군요." << endl;
	break;

	case 5:
		cout << "안녕하수꽝. 혼저옵세예" << endl;
	break;
	
	default:
		cout << "5개 중에 선택해 주세요." << endl;
	break;
}

//switch문 예제를 if문 예제로

cout << "if문으로 작성" << endl;

if (home == 1)
{
	cout << "안녕하세요 당신의 고향은 서울이군요." << endl;
}
else if (home == 2)
{
	cout << "안녕하세요 당신의 고향은 양평이군요." << endl;
}
else if (home == 3)
{
	cout << "안녕하세요 당신의 고향은 광주군요." << endl;
}
else if (home == 4)
{
	cout << "안녕하세요 당신의 고향은 대전이군요." << endl;
}
else if (home == 5)
{
	cout << "안녕하세요 당신의 고향은 제주도이군요." << endl;
}
else
{
	cout << "5개 중에 선택해 주세요." << endl;
}

// Hello World 를 5번 출력하는 프로그램

int repeat_count = 0;

while (repeat_count < 5)
{
	cout << "Hello World" << endl;
	repeat_count++;
}

cout << "다른문제" << endl << endl;

repeat_count = 0; // 변수 초기화

while (1)
{
	cout << "다른문제" << endl << endl;
	repeat_count++;

	if (repeat_count >= 5)
	{
		break;
	}
}

cout << "다른문제" << endl << endl;

repeat_count = 0; // 변수 초기화

do
{
	cout << "Hello World" << endl;
	repeat_count++;
} 
while (repeat_count < 5);

// while문을 써서 정답을 맞출 때 까지 반복되는 프로그램으로 수정 해 보자. // 1 ~ 9 사이의 숫자를 입력하여 정답이 나올때까지 진행하는 프로그램을 만들어보자
/*
	int in_number;
	int right_answer = rand() % 9 + 1;

	cout << boolalpha;
	cout << "1 ~ 9 사이의 숫자를 입력하시오 : ";
	cin >> in_number;

	cout << (in_number == right_answer) << endl;
	cout << "정답은 " << right_answer << " 입니다!" << endl;

*/

srand(time(NULL));
int input_num = 0;
int output_answer = rand() % 9 + 1;

while (input_num != output_answer)
{

	cin >> input_num;
	if (input_num != output_answer) 
	{
		cout << "오답입니다" << endl;
	}
	else if (input_num == output_answer) 
	{
		cout << "정답입니다" << endl;
	}
}

while (input_num != output_answer)
{
	cout << "숫자를 맞춰 보세요 : ";

}

for (int i = 0; i < 5; i++)
{
	cout << "Hello World" << endl;
}

/*
	for문 
	
	실습1.
	10부터 1까지 차례대로 출력되는 코드를 작성해보자.
	10
	9
	8
	7
	6
	...
	1
*/

for (int i = 10; i > 0; i--)
{
	cout << i << endl;
}

/*
	실습2.
	100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해 보자.
	3
	6
	9
	12
	15
	...
	96
	99
*/

for (int i = 3; i < 100; i += 3)
{
	cout << i << endl;
}

/*
	실습3.
	1000미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자.
	1
	2
	4
	8
	16
	32
	64
	128
	265
	512
*/

for (int i = 1; i < 1000; i *= 2)
{
	cout << i << endl;
}

/*
	실습4.
	구구단을 출력해보자

	4_1. 구구단 2단을 차례대로 출력해보자.
	2 * 1 = 2
	2 * 2 = 4
	2 * 3 = 6
	2 * 4 = 8
	2 * 5 = 10
	2 * 6 = 12
	2 * 7 = 14
	2 * 8 = 16
	2 * 9 = 18

	4_2. 구구단 2단 ~ 9단을 차례대로 출력해보자.
	2단~~

	3단~~

	...

	9단~~

	4_3. 구구단 2단 ~ 9단을 다음과 같은 형태로 출력해보자.
	2단 3단 4단
	5단 6단 7단
	8단 9단
*/
cout << "4_1. 구구단 2단을 차례대로 출력해보자." << endl;
for (int i = 1; i < 10; i++)
{
	cout << "2 * " << i << " = " << i * 2 << endl;
}
cout << endl;

cout << "4_2. 구구단 2단 ~ 9단을 을 차례대로 출력해보자." << endl;
for (int i = 2; i < 10; i++)
{
	cout << i << "단" << endl;
	for (int j = 1; j < 10; j++)
	{
		cout << i << " * " << j << " = " << i * j << endl;
	}
	cout << endl;
}

cout << "4_3. 구구단 2단 ~ 9단을 을 차례대로 출력해보자." << endl;
for (int j = 1; j < 10; j++)
{
	for (int i = 2; i < 5; i++)
	{
		cout << i << " * " << j << " = " << i * j << "\t";
	}
cout << endl;
cout << endl;
}
cout << endl;
for (int j = 1; j < 10; j++)
{
	for (int i = 5; i < 8; i++)
	{
		cout << i << " * " << j << " = " << i * j << "\t";
	}
	cout << endl;
	cout << endl;
}
cout << endl;
for (int j = 1; j < 10; j++)
{
	for (int i = 8; i < 10; i++)
	{
		cout << i << " * " << j << " = " << i * j << "\t";
	}
	cout << endl;
	cout << endl;
}

cout << "교수님 해설 과제1" << endl;

for (int i = 1; i < 10; i++)
{
	cout << "2 * " << i << " = " << 2 * i << endl;
}

cout << "교수님 해설 과제2" << endl;

for (int gugu_dan = 2; gugu_dan < 10; gugu_dan++)
{
	for (int gugu_su = 1; gugu_su < 10; gugu_su++)
	{
		cout << gugu_dan << " * " << gugu_su << " = " << gugu_dan * gugu_su << endl;
	}
	cout << endl;
}

}

profile
해보자요

0개의 댓글