20211007_C++_공부기록
반복문에는 while, do-while, for문이 있다.
반복문 (1)에서는 while문과 do-while문을 다룬다.
1.1 while 문
while문은 조건이 참인 동안 반복적으로 문장을 실행한다.
1.2 while 문에서의 오류
- 반복조건이 최종적으로 거짓이 되지 않으면 무한루프가 발생한다.
- 실수로 반복을 한 번 더 또는 한 번 덜 실행하게 되는 경우를 하나차이로 인한 오류라고 한다.
*하나차이로 인한 오류 예시
의도 : 0부터 100까지
오류 : 1부터가 아닌 0부터 시작하기 때문에 while ( count < 100 )으로 써줘야 한다.
int count = 0;
while (count <= 100)
{
cout << "Welcome to C++!" << endl;
count++;
}
2 do - while 문
do-while은 (1)우선 반복문이 실행되고 나서 (2)반복 조건을 검사
위 조건을 제외하고는 while문과 동일
실습&예제
1. while문 예제: 덧셈 퀴즈
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(0));
int number1 = rand() % 101; //0부터 100까지
int number2 = rand() % 101;
cout << number1 << " + " << number2 << " ? ";
int answer;
cin >> answer;
while (number1 + number2 != answer) //덧셈 퀴즈
{
cout << "틀렸습니다. 다시 계산해보세요." << endl;
cout << endl << number1 << " + " << number2 << " ? ";
cin >> answer;
}
cout << "정답입니다!" << endl;
return 0;
}
/*
39 + 0 ? 56
틀렸습니다. 다시 계산해보세요.
39 + 0 ? 15
틀렸습니다. 다시 계산해보세요.
39 + 0 ? 54
틀렸습니다. 다시 계산해보세요.
39 + 0 ? 29
틀렸습니다. 다시 계산해보세요.
39 + 0 ? 39
정답입니다!
*/
2. while문 예제: 미래의 등록금 예측
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double tuition = 10000;
int year = 0;
while (tuition < 20000)
{
tuition = tuition + (tuition * 0.07);
year++;
}
cout << year << " 년 후에는 등록금이 두 배가 되며," << endl;
cout << fixed << setprecision(2);
cout << year << " 년 후의 등록금은 " << tuition << " 입니다." << endl;
return 0;
}
/*
11 년 후에는 등록금이 두 배가 되며,
11 년 후의 등록금은 21048.52 입니다.
*/
3. do-while문
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
int number;
do
{
cout << "정수를 입력하시오(끝내고 싶으면 0 입력): ";
cin >> number;
if (number != 0)
sum += number;
} while (number != 0);
cout << endl << "입력한 정수들의 합은: " << sum << endl;
return 0;
}
/*
정수를 입력하시오(끝내고 싶으면 0 입력): 1
정수를 입력하시오(끝내고 싶으면 0 입력): 2
정수를 입력하시오(끝내고 싶으면 0 입력): 1
정수를 입력하시오(끝내고 싶으면 0 입력): 0
입력한 정수들의 합은: 4
*/
4. do-while문 예제: 숫자 맞추기
#include <iostream>
#include <ctime> //time함수 호출
#include <cstdlib> //srand, rand함수 호출
using namespace std;
int main()
{
srand(time(0));
int number = rand() % 11;
int guess;
do {
cout << endl << "추측한 정수의 값을 입력해주세요 ; ";
cin >> guess;
if (guess < number)
cout << "사용자의 추측값은 너무 낮습니다" << endl;
else if (guess > number)
cout << "사용자의 추측값은 너무 높습니다" << endl;
} while (number != guess);
cout << guess << "은/는 사용자의 추측값이 맞습니다" << endl;
return 0;
}
/*
추측한 정수의 값을 입력해주세요 ; 5
사용자의 추측값은 너무 높습니다
추측한 정수의 값을 입력해주세요 ; 1
사용자의 추측값은 너무 낮습니다
추측한 정수의 값을 입력해주세요 ; 3
3은/는 사용자의 추측값이 맞습니다
*/
'School Study > 2021-2' 카테고리의 다른 글
[week 09] C++ 복습_6장 함수 (1) (0) | 2021.11.26 |
---|---|
[week 07] C++ 복습_5장 반복문 (2) (0) | 2021.11.26 |
[week 05] C++ 복습_4장 수학함수, 문자, 문자열 (0) | 2021.10.17 |
[week 04] C++ 복습_3장 선택문 (2) (0) | 2021.10.16 |
[week 03] C++ 복습_3장 선택문 (1) (0) | 2021.10.07 |