C++
반복문(while, do while)
yoooon1212
2024. 12. 5. 01:19
while
while 반복문 형식
해당 조건까지 반복
while(조건){
해당 조건을 만족할 때까지 반복
}
조건: B
A는 while문 밖에 적기
C는 while문 안에 적기
조건의 초기값
while(조건){
해당 조건을 만족할 때까지 반복
조건의 증가 또는 감소
}
반복 내용이 한 줄이라면 { } 생략 가능
코드 예시
#include <iostream>
using namespace std;
int main() {
cout << "프로그램 시작" << endl;
int i = 0;
while (i < 10) {
cout << i << "안녕하세요" << endl;
i++;
}
cout << "프로그램 종료" << endl;
return 0;
}
출력 결과
실습 문제1
1부터 2023까지 홀수인 정수의 합은 얼마인지 while문을 사용하여 계산하세요.
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int i = 1;
while (i <= 2023) {
if (i % 2 == 1)
sum += i;
i++;
}
cout << sum << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int i = 1;
while (i <= 2023) {
sum += i;
i += 2; // 3, 5, 7, 9...
}
cout << sum << endl;
return 0;
출력 결과
실습 문제 2
1부터 100까지의 수 중 5의 배수만 출력하세요.
#include <iostream>
using namespace std;
int main() {
int i = 1;
while (i <= 100) {
if (i % 5 == 0) {
cout << i << endl;
}
i++;
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int i = 5;
while (i <= 100) {
cout << i << endl;
i += 5;
return 0;
}
출력 결과
실습 문제 3
정수를 입력 받아 그 수에 해당하는 구구단을 출력하는 프로그램을 만드세요.(구구단)
#include <iostream>
using namespace std;
int main() {
int n;
int i = 1;
cout << "구구단을 출력하겠습니다" << endl;
cout << "몇 단을 출력할까요? ";
cin >> n;
while (i <= 9) {
// n * i = 결과
cout << n << "*" << i << "=" << n * i << endl;
i++;
}
return 0;
}
출력 결과
do while
do while 반복문
적어도 한 번 이상은 반복
조건의 초기값
do {
무조건 한 번은 수행
해당 조건을 만족할 때까지 반복
} while(조건);
조건의 초기값
do
무조건 한 번은 수행
조건의 증가 또는 감소
해당 조건을 만족할 때까지 반복
while(조건);
반복 내용이 한 줄이라면 { } 생략 가능
예제 코드
#include <iostream>
using namespace std;
int main() {
cout << "프로그램 시작" << endl;
int i = 0;
do {
cout << i << "안녕하세요" << endl;
i++;
} while (i < 10);
cout << "프로그램 종료";
return 0;
}
출력 결과
실습 문제 1
do while 문은 조건을 만족하지 않더라도 무조건 한 번은 실행됨
#include <iostream>
using namespace std;
int main() {
cout << "프로그램 시작" << endl;
int i = 0;
do {
cout << i << "안녕하세요" << endl;
i++;
} while (i < 0);
cout << "프로그램 종료";
return 0;
}
while 문의 조건을 i < 0으로 하여 조건을 만족하지 않도록 함
출력 결과
do 내의 코드가 반드시 한 번 실행
조건문을 만족하지 않으므로 바로 종료됨
실습 문제 2
음식점 메뉴 주문 프로그램을 만드세요
만약 메뉴판에 없는 번호를 선택했다면 메뉴판에 있는 음식을 선택할 때까지 메뉴판을 다시 출력하세요
#include <iostream>
using namespace std;
int main() {
int n;
do {
cout << "어서오세요. 맛있는 음식점입니다" << endl;
cout << "****메뉴****" << endl;
cout << "1.떡볶이" << endl;
cout << "2. 피자" << endl;
cout << "3. 치킨" << endl;
cout << "4. 파스타" << endl;
cout << "****************" << endl;
cout << "먹고 싶은 음식의 번호를 선택해주세요" << endl;
cin >> n;
} while (n < 1 || n > 4);
if (n == 1)
cout << "떡볶이를 주문하셨습니다" << endl;
else if (n == 2)
cout << "피자를 주문하셨습니다" << endl;
else if (n == 3)
cout << "치킨을 주문하셨습니다" << endl;
else
cout << "파스타를 주문하셨습니다" << endl;
return 0;
}
출력 결과
1, 2, 3, 4가 아닌 다른 번호 입력 시
do 내의 코드가 다시 실행된다
break와 continue
break
반복을 중단함
break를 만나는 순간 반복문을 빠져 나오게
코드 예시
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 10) {
if (i == 5)
break;
cout << i << "안녕하세요" << endl;
i++;
}
return 0;
}
출력 결과
continue
현재 반복하던 내용을 중단하고 다음 반복으로 넘어감
코드 예시
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; i++) {
cout << i << "반복" << endl;
if (i == 5)
continue;
cout << "안녕하세요" << endl;
}
return 0;
}
출력 결과
지금 하던 반복(5)를 실행 안 하고(띄어넘고) 넘어감
실습 문제 1
for 반복문을 사용하여 i가 6이상이면 멈추고, i가 짝수일 때만 i의 값을 출력하는 프로그램을 만드세요
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; i++) {
if (i >= 6)
break;
if (i % 2 == 0)
cout << i << endl;
// else 는 생략 가능
else
continue; // 넘어감
}
return 0;
}
출력 결과
실습 문제 2
정수를 입력받아 그 수에 해당하는 구구단만 제외하고 출력하는 프로그램을 만드세요
#include <iostream>
using namespace std;
int main() {
int n;
cout << "구구단 출력 프로그램" << endl;
cout << "몇 단을 제외하고 출력할까요? " << endl;
cin >> n;
// 2단 ~ 9단까지
for (int i = 2; i < 10; i++) {
if (i == n)
continue;
// 1 ~ 9까지 곱하기
for (int j = 1; j <= 9; j++)
cout << i << "*" << j << "=" << i * j << endl;
}
return 0;
}
출력 결과
3단 제외하고 출력됨
실습 문제 3
숫자를 입력 받아 5부터 입력 받은 숫자까지 합을 구하는 프로그램을 만드세요
이때, 5보다 작은 숫자가 입력되었다면 '계산할 수 없음'을 출력하고 프로그램을 종료하세요
#include <iostream>
using namespace std;
int main() {
int n;
int i = 5;
int sum = 0;
cout << "숫자를 입력하세요: ";
cin >> n;
if (n >= 5){
while (i <= n) {
sum += i;
i++;
}
cout << "결과는 " << sum;
}
else {
cout << "계산할 수 없음";
}
return 0;
}
출력 결과
실습 문제 4
0이 입력될 때까지 계속 정수를 입력받고 입력된 모든 숫자들의 총합을 출력하세요
#include <iostream>
using namespace std;
int main() {
int n;
int sum = 0;
do {
cout << "숫자를 입력하세요: ";
cin >> n;
if (n == 0)
break;
sum += n;
} while (1);
cout << "결과는" << sum;
return 0;
}
출력 결과