6.1 while 반복 루프에서 scanf()의 반환값 사용하기

공기훈·2021년 9월 6일
0

홍정모의 따배씨

목록 보기
26/49
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int num, sum = 0;
	int status;

	printf("Enter an integer (q to quit) : ");

	status = scanf("%d", &num);		// return value of scanf()

	while (status == 1)				// equality operator
	{
		sum = sum + num;

		printf("Enter an integer (q to quit) : ");
		status = scanf("%d", &num);
	}

	printf("Sum = %d\n", sum);

	return 0;
}

scanf 함수는 입력 받은 정수의 개수의 개수를 반환값으로 돌려준다.
만약, 숫자가 아니라 문자가 들어오게 된다면, 정수로 입력 받은 게 없으므로 0을 반환값으로 가지게 된다.

== : equality operator
관계 연산자.
왼쪽과 오른쪽이 같은 지를 비교한다.
관계를 평가하는 연산자이다.

status == 1status > 0으로 바꿔도 된다.
while문 안의 조건은 loop가 계속 진행되는 조건과 같으므로 저게 된다.

Shortcut in C

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int num, sum = 0;

	printf("Enter an integer (q to quit) : ");

	while (scanf("%d", &num) == 1)				// equality operator
	{
		sum = sum + num;

		printf("Enter next integer (q to quit) : ");
	}

	printf("Sum = %d\n", sum);

	return 0;
}
profile
be a coding master

0개의 댓글