정의
제어문은 프로그램에 원하는 결과를 띄우기 위해서 프로그램의 순차적인 흐름을 조정해야 할 때 쓰는 명령문을 제어문 이라고 하며
조건문과 반복문이 존재한다.
조건문
특정 조건에 따라 실행문의 실행하거나 실행하지 않는 행동을 제어하는 명령문으로 if 와 switch 가 있다.
if
- 형식
if(조건식 1) = (조건식 1) 의 결과가 참일 때 (실행문 1) 이 실행
{
(실행문 1)
}
else if(조건식 2) = (조건식 1)이 틀리고 (조건식 2)가 맞으면 (실행문 2)를 실행
{
(실행문 2)
}
else = (조건식 1)과(조건식 2)의 결과가 거짓일 때 (실행문 3)가 실행
{
(실행문 3)
}
- 예시
정수를 하나 입력 받아서 입력 받은 숫자가
10보다 크면 "입력된 숫자가 10보다 큽니다." 출력
10 이하 9초과 라면 "9보다 큽니다." 출력
9 이하 6초과 라면 "6보다 큽니다." 출력
그 이외에 입력은 "6보다 작거나 같습니다." 출력
int Num;
cout << "숫자 입력 : ";
cin >> Num;
if (10 < Num)
{
cout << "입력된 숫자가 10보다 큽니다.";
}
else if (10 >= Num && 9 < Num)
{
cout << "입력된 숫자가 9보다 큽니다.";
}
else if (9 >= Num && 6 < Num)
{
cout << "입력된 숫자가 6보다 큽니다.";
}
else
{
cout << "입력된 숫자가 6보다 작거나 같습니다.";
}
switch
- 형식
swith(정수형 변수)
{
case 정수1 :
실행문1
break;
case 정수2 :
실행문2
break;
case 정수3 :
실행문3
break;
default : 해당하는 정수값이 없을 때
break;
}
- 예시
switch
당신의 고향은 어디입니까?
1. 서울 2. 양평 3. 광주 4.대전 5.제주도
"안녕하세요 당신의 고향은 서울이군요." 답에 따라 지역만 바꿔서 출력
디폴트 값은 "5중에 선택해 주세요" 출력
int SwitchTest;
cout << "당신의 고향은 어디입니까?" << endl;
cout << "1. 서울 2. 양평 3. 광주 4. 대전 5. 제주도" << endl;
cin >> SwitchTest;
switch (SwitchTest)
{
case 1: cout << "안녕하세요. 당신의 고향은 서울 이군요.\n";
break;
case 2: cout << "안녕하세요. 당신의 고향은 양평 이군요.\n";
break;
case 3: cout << "안녕하세요. 당신의 고향은 광주 군요.\n";
break;
case 4: cout << "안녕하세요. 당신의 고향은 대전 이군요.\n";
break;
case 5: cout << "안녕하세요. 당신의 고향은 제주도 군요.\n";
break;
default:
cout << "5개 중에 선택해주세요";
break;
}
- 결과
만약 중간에 break; 가 없다면 변수를 받았을 때 변수에 맞는 case를 실행하고 거기서부터 아래로 순차적으로 실행하게 된다.
반복문
특정 조건에 따라 실행문을 일정 횟수만큼 반복 실행하는 명령문으로 while 과 for이 있다.
while
- 형식
while (조건식)//조건식이 True(참)이면 반복으로 실행이 된다.
{
(실행문);
}
- 예시 : Hello World! 를 반복문으로 출력하기
while (true)
{
cout << "Hello World!" << endl;
}
- 결과
Hello World! 가 무한 반복되는 모습을 볼 수 있다.
무한 반복을 끝내는 방법
1. 조건식을 바꾸는 실행문을 넣는다.
while (true)
{
cout << "Hello World!" << endl;
}
- 예시 : Hello World! 를 5번 반복하기
int Num = 0;
while (Num < 5)
{
cout << "Hello World!" << endl;
Num++; //조건식을 바꾸는 실행문
}
- 결과
Hello world! 가 5번 반복 된다.
2. if문 내에 break; 를 넣는다.
while (조건식)
{
(실행문);
if(조건식)
{
break;//if문 내에 break;를 넣는다.
}
}
- 예시 : Hello World! 를 5번 반복하기
int Num = 0;
while (true)
{
cout << "Hello World!" << endl;
Num++;
if (Num > 4) //if문 내에 break; 를 넣는다.
{
break;
}
}
- 결과
Hello world! 가 5번 반복 된다.
for
- 형식
for(초기식; 조건식; 증감식;)
{
실행문;
}
초기식? 계산의 기초가 되는 변수이다.
ex) int a = 0, float b = 0.1f
조건식? 참과 거짓을 판단한다.
ex) a >= 5, b < c
증감식? 조건식을 변경한다.
ex) a++, --b, a += 3
for문 실행 순서
초기식 -> 조건식 -> 실행문 -> 증감식 -> 조건식 -> 실행문 -> 증감식 -> 조건식 . . .
- 예시 : Hello World! 를 5번 반복하기
for (int i = 0; i < 5; i++)
{
cout << "Hello World!" << endl;
}
- 결과
Hello world! 가 5번 반복 된다.
for문 연습 1
연습 1. 10부터 1까지 차례대로 출력되는 코드를 작성해보자. (10, 9, 8, 7, 6, 5 ...)
연습 2. 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자. (3, 6, 9, 12, 15 ...)
연습 3. 1000 미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자. (2, 4, 8, 16, 32 ....)
연습 1. 10부터 1까지 차례대로 출력되는 코드를 작성해보자. (10, 9, 8, 7, 6, 5 ...)
for (int Num1 = 10; Num1 >= 1; Num1--)
{
cout << Num1<< endl;
}
결과
연습 2. 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자. (3, 6, 9, 12, 15 ...)
for (int Num2 = 3; Num2 <= 100; Num2 +=3)
{
cout << Num2 << endl;
}
결과
연습 3. 1000 미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자. (2, 4, 8, 16, 32 ....)
for (int Num3 = 2; Num3 <= 1000; Num3 *= 2)
{
cout << Num3 << endl;
}
결과
for문 연습 2
실습 4. 구구단을 출력해보자.
실습 4-1. 구구단 2단을 차례대로 출력해보자.
실습 4-2. 구구단 2단 ~ 9단을 차례대로 출력해보자.
실습 4-3. 구구단을 3x3형태로 출력해보자.
연습 4 - 1 구구단 2단을 차례대로 출력해보자.
int N1 = 2;
for (N2 = 2; N2 < 10; N2++)
{
cout << N1 << " * " << N2 << " = " << N1*N2 << "\n";
}
결과
연습 4 - 2 구구단 2단 ~ 9단을 차례대로 출력해보자.
for (N1 = 2; N1 < 10; N1++)
{
for (N2 = 1; N2 < 10; N2++)
{
cout << N1 << " * " << N2 << " = " << N1 * N2 << endl;
}
cout << endl;
N2 = 1;
}
결과
연습 4 - 3 구구단을 3x3형태로 출력해보자.
int N2 = 1;
cout << endl;
for (N3 = 2; N3 < 10; N3 += 3)
{
for (N4 = 1; N4 < 10; N4++)
{
for (N1 = N3; N1 < N3 + 3; N1++)
{
if (N1 == 10)
{
break;
}
cout << N1 << " * " << N2 << " =" << N1 * N2 << "\t";// \t : 줄 정렬
}
cout << endl;
N2++;
}
N2 = 1;
cout << endl;
}
결과
'코딩 > C++' 카테고리의 다른 글
[C++] 키 인식 (0) | 2022.04.13 |
---|---|
[C++] 배열 (0) | 2022.04.13 |
[C++] 난수 생성 (0) | 2022.04.11 |
[C++]연산자 (0) | 2022.04.07 |
[C++]변수명 이름 규칙 (0) | 2022.04.07 |