문제
정수를 모두 입력받고 while문으로 조건을 만족할 때까지 반복합니다.
문제풀이 - 1
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int A,B;
scanf("%d %d", &A, &B);
while (A != 0 | B != 0)
{
printf("%d\n", A + B);
scanf("%d %d", &A, &B);
}
return 0;
}
- while (조건식)을 사용하는 문제이다. 종료 조건은 A=0, B=0일 때이다. 따라서, A == 0 && B == 0 조건이 만족되면 될 때 종료된다.while문은 참이면 반복되므로, A==0 && B==0이 아닌 조건에서는 계속해서 반복되어야 한다.따라서, A!=0 | B!=0 조건이 되면 A=0, B=0일 때 정상적으로 종료된다.
문제풀이 - 2
'거짓'일 때 while문을 멈추다보니 조건을 넣기 헷갈린다. 따라서 아래와 같이 작성할 수도 있다.
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int A,B;
while (1)
{
scanf("%d %d", &A, &B);
if (A == 0 && B == 0)
{
break;
}
printf("%d\n", A + B);
}
return 0;
}
while (1)을 사용하여 while문을 계속해서 반복하게 하고, if문과 break를 통해 while문을 멈추는 구조입니다.
이 경우 if 조건식에는 '참' 조건을 통해 진입하기 때문에 '참' 조건에 따라 while문을 break할 수 있습니다.
'C C++ > C C++ 백준' 카테고리의 다른 글
C언어 백준 1110번 두 수 비교하기 (0) | 2022.01.20 |
---|---|
C언어 백준 10951번 A+B - 4 (0) | 2022.01.19 |
C언어 백준 10871번 X보다 작은 수 (0) | 2022.01.19 |
C언어 백준 2439번 별 찍기 - 2 (0) | 2022.01.14 |
C언어 백준 2438번 별 찍기 - 1 (0) | 2022.01.13 |
댓글