본문 바로가기
C C++/C C++ 백준

C언어 백준 10952번 A+B - 5

by Go! Jake 2022. 1. 19.

 

문제

정수를 모두 입력받고 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할 수 있습니다.

 

 

댓글