오늘은 C++ 선택문 / 반복문(for문)을 공부했습니다.
책은 C++하이킹 책을 보고 공부했습니다.
먼저 제어문의 종류에 대해 알아보겠습니다.
1.선택문
-if문
-if-else 문
- 다중 if-else문
- switch문
반복문
- for문
- while문
- do-while문
보조제어문
-break문
-continue문
먼저 선택문을 보겠습니다.
if문 기본 형식
[문장]
if(조건){
조건에 만족되면 수행되는 문장;
}
[다음 문장]
if문을 사용해서 절댓값 구하기
#include<iostream>
using namespace std;
void main() {
int x;
cout << "정수값을 입력하시오";
cin >> x;
if (x < 0) //음수일 경우에만
x = -x; //부호변경
cout << "절댓값=>" << x << "\n";
}
결과창

if-else문 기본형식
[문장]
if(조건){
조건에 만족할 때 수행되는 문장;
}
else{
조건에 만족하지 않을 떄 수행되는 문장;
}
[다음 문장]
if-else문을 사용해서 짝수 홀수 판별하기
#include<iostream>
using namespace std;
void main() {
int x;
cout << "정수값을 입력하시오";
cin >> x;
if (x % 2 == 1) {
cout << "홀수다";
}
else {
cout << "짝수다";
}
}

다중 if-else문 기본형식
[문장]
if(조건1){
조건1에 만족할 때 처리할 문장}
else if(조건2){
조건1에 만족하지 않지만 조건2에 만족할 때 처리할 문장}
*****
else if(조건 n){
조건부터 조건 n-1에 만족하지 않지만 조건n에 만족 할 때 처리할 문장;}
else{
위에서 언급한 모든 조건에 대해서 만족하지 않을 떄 처리할 문장;
}
[다음 문장]
다중 if-else문을 이용해서 학점 계산하기
#include<iostream>
using namespace std;
void main() {
int score;
char grade;
cout << "점수를 입력하시오";
cin >> score;
//조건검사
if (score >= 90)
grade = 'A';
else if (score >= 80)
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score >= 60)
grade = 'D';
else
grade = 'F';
cout << "입력한 점수" << score << "은" << grade << "학점입니다.\n";
}

동등 연산자 대신 대입 연산자를 사용했을 경우 발생하는 문제점
#include<iostream>
using namespace std;
void main() {
int i = 200;
cout << "i가 300이냐?";
if (i == 300)
cout << "true\n";
else cout << "false\n";
cout << "i가300이냐?";
if (i = 300)
cout << "true\n";
else
cout << "false\n";
}

지금if문에 =대입연산자가 있어서 원래는 false가 나와야하는데 true가나옴
switch문 기본형식
문장1;
switch<정수식>{
case 정수값1 : 문장2;[break;]
case 정수값2 : 문장3;[break;]
****
case 정수값n : 문장n;[break;]
****
[default:]문장m;
} 다음문장;
default값은 위에 case문에 해당하는 조건이 없을 때 사용하는 문장입니다.
그리고 정수식과 일치하는 값이 없을 경우 아무런 처리도 하지 않는다면 default를 생략해도됩니다.
switch문으로 학점 판별하기
#include<iostream>
using namespace std;
void main() {
int score;
char grade;
cout << "점수를입력하세요 ==>";
cin >> score;
switch (score / 10) {
case 10:grade = 'A'; break;
case 9:grade = 'A'; break;
case 8:grade = 'B'; break;
case 7:grade = 'C'; break;
case 6:grade = 'D'; break;
default:grade = 'F';
}
cout << "입력한 점수" << score << "은" << grade << "학점입니다.\n";
}

break문이 없는 switch문으로 학점 판별하기
#include<iostream>
using namespace std;
void main() {
int score;
char grade;
cout << "점수를입력하세요 ==>";
cin >> score;
switch (score / 10) {
case 10:cout << "A학점입니다." << endl;
case 9: cout << "A학점입니다." << endl;
case 8: cout << "B학점입니다." << endl;
case 7: cout << "C학점입니다." << endl;
case 6: cout << "D학점입니다." << endl;
default: cout << "F학점입니다." << endl;
}
}

break문이 없어서 C부터 끝까지 값이 출력됩니다..
for문 기본형식
for<초기식>;<조건식>;<증감식>){
문장1;
}
for문을 이용해서 1부터5까지의 합계 구하기
#include<iostream>
using namespace std;
void main() {
int total = 0;
int i;
for (i = 1; i <= 5; i++) {
cout << "i=" << i << endl;
total += i;
cout << "total=" << total << endl;
}
cout << "1부터" << i - 1 << "까지의 합계는" << total << "입니다." << endl;
}

1부터 5까지의 홀수 합계 구하기
#include<iostream>
using namespace std;
void main() {
int total = 0;
for (int i = 1; i <= 5; i+=2) {
cout << "i=" << i << endl;
total = total + i;
cout << "total=" << total << endl;
}
cout << "1부터5까지의 홀수 합계는 " << total << "입니다" << endl;
}

for문을 이용해서 구구단 출력하기
#include<iostream>
using namespace std;
void main() {
int dan;
cout << "원하는 단을 입력하세요==>";
cin >> dan;
for (int j = 1; j < 10; j++) {
cout << dan << "*" << j << "=" << dan * j << "\n";
}
}

다중 for문을 이용해서 특정 구구단 출력하기
#include<iostream>
using namespace std;
void main() {
for(int dan=2;dan<=9;dan++){
for (int j = 1; j < 10; j++) {
cout << dan << "*" << j << "=" << dan * j << "\n";
}
}
}

이상으로 제어문 포스팅-1을 마치겠습니다.