Notice
Recent Posts
Recent Comments
Link
미국산 귤
[🌱C99] 백준 10952번 풀이 - 사칙연산 반복문 본문
두 정수 A, B를 입력하면 합을 출력하는 프로그램
다만 0 0 을 입력할 경우 반복문이 멈춰야 한다.
반복문을 몇 번 실행시킬지도 미지수니 for문을 사용할 수도 없고,
A, B 값이 초기화가 안 되어 있어 while문도 어떻게 사용할지 막막했다.
해결
반복문의 조건을 while(1)로 설정해두면 break문을 만날 때까지 무한 루프가 실행된다.
A, B를 입력 받고 if문을 이용해 조건에 따라 다른 결과가 되도록 설정하면 된다.
<while문 전체 코드>
#include <stdio.h>
int main (void){
int A;
int B;
// break문에 도달하지 않는 이상 무한 루프
while(1){
scanf("%d %d", &A, &B);
// 0 0 이 입력되면 루프를 빠져나옴
if(A == 0 && B == 0){
break;
}else{
printf("%d\n", A + B);
}
}
return 0;
}
-> 맨 처음에는 무조건 실행이 돼야 한다? : do-while문이 떠올랐다.
do-while문은 조건에 관계없이 1회는 무조건 실행되기 때문이다.
그래서 do-while문으로도 코드를 짜보았다.
근데 짜고보니.. 맨처음에 0 0 이 입력될 경우도 있기 때문에
do-while로 짜면 더 복잡해지는 것 같다.
굳이 반복문 안에다가 조건문을 한 번 더 써야 하기 때문이다..
그냥 while(1) 방법을 쓰는 게 훨씬 나은 것 같다.
<do-while문 전체 코드>
#include <stdio.h>
int main(void) {
int A, B;
do {
scanf("%d %d", &A, &B);
// 비효율...
if(A==0&&B==0){
break;
}
printf("%d\n", A + B);
} while (A != 0 || B != 0);
return 0;
}
문제 출처 : 백준 10952번
https://www.acmicpc.net/problem/10952
🔥한줄평
while(1)을 이용해 무한 루프를 만드는 방법 기억하자
'C' 카테고리의 다른 글
[C] 집합 연산 함수 구현하기 (0) | 2024.10.10 |
---|---|
[C] 다중 집합 배열에 원소 추가하는 함수 구현하기 (0) | 2024.09.18 |