몇 일 전 이상한 생각으로 if();
문을 조작하는 내 생각에 이상한 생각이 들었습니다. 간단한 코드로 이동하십시오.C 함수가 테스트 조건으로 호출됩니다.
강령 :
if(printf("blahblah\n");{
}
:
1) 나를 위해 내가이 코드는 항상 참 생각 (내 가정) 테스트 조건이 함수 호출로 대체 되었기 때문입니다.
강령 : 첫 번째 코드 내 아이디어를 사용하여
#include <stdio.h>
int main(void) // This program would add up the value enter by user , for e.g with the
{ //input of 20 , it will print out the sum of 1+2+3+4+5.....20.
int count , sum , size;
count = 0;
sum = 0;
printf("Enter a value to find the sum of it from 1 : ");
scanf("%d" , &size);
while (count++ < size)
sum = sum + count;
printf("sum = %d\n" , sum);
return 0;
}
, 나는 이것으로 두 번째 코드를 수정했습니다.
#include <stdio.h>
int main(void)
{
int count , sum , size;
count = 0;
sum = 0;
printf("Enter a value to find the sum of it from 1 : ");
while (scanf("%d" , &size) && count++ < size)
sum = sum + count;
printf("sum = %d\n" , sum);
return 0;
}
[질문 : 첫 번째 코드 만든 날 가정을 바탕으로
1.), 항상 그건 명 약관 하하게 사실로 평가되어야한다고 가정 scanf()
기능이 왜 두 번째 테스트 조건 count++ < size
while
에있는 명령문이 실행되는지 여부를 판별하는 것입니다.
2.) 그러나 프로그램을 실행할 때 30을 입력했지만 작동하지 않습니다. 프로그램이 입력 한 후에 아무 것도하지 않고 멈 춥니 다.
3) 입력 연산자가 오른쪽 피연산자 인 동안 왼쪽 카운트로 '카운트 ++ <'을 사용하여 테스트 조건으로 전환하려고합니다.
4.) 이렇게하면 결과가 달라집니다. 프로그램을 실행하려고하면 프로그램이 두 번째 printf()
함수 문을 실행하고 sum = 0
을 출력합니다.
귀하의 도움을 많이 주시고, 실수로 나를 바로 잡으십시오. 나는 그것을 배우고 싶습니다.
당신이 의미하는 바는 printf() 함수의 반환 값이 테스트 조건으로 사용됨을 의미합니다. – caramel1995