- IF문
if문에서 사용되는 참과 거짓은 프로그램 상으로 0과 1로 구분되어 인식된다.
0은 거짓, 1은 참
int a = 0
if(a == 0) // if문에서 a의 값이 0인지 물어봤고 a가 0이므로 시스템에서는 참의 값인 1을 인식
printf("참");
else
printf("거짓 ");
결과: 참
int a = 0
if(a == 1) // a가 0이 아니므로 시스템에서는 거짓의 값인 0을 인식
printf("참");
else
printf("거짓 ");
결과: 거짓
위처럼 변수값이 0,1일 경우 혼동되기 쉽다.
여기서 보아야 할 부분은 if문 안에있는 값이 아니라
시스템에서 받아들이는 값을 보아야 한다.
좀더 쉽게 이해하기 위한 예문 ↓
int a = 3
if(a == 3) // if문에서 a의 값이 3인지 물어봤고 a가 3이므로 시스템에서는 참의 값인 1을 인식
printf("참");
else
printf("거짓 ");
결과: 참
int a = 3
if(a == 4) // a의 값이 4가 아니므로 시스템에서는 거짓의 값인 0을 인식
printf("참");
else
printf("거짓 ");
결과: 거짓
- 리턴값
return을 할때 0과 0이외의 값으로 구분되어 인식된다.
0은 참, 0이외의 값(1,-1,3243)등은 거짓
int a = 0
if(a == 1)
printf("참");
else
printf("거짓 ");
return 0; // 넘겨주는 변수가 없이 0을 리턴하므로 이 함수가 이상없이 끝났음을 의미
(0이 생략되어 return;으로 사용되기도 함)
int a = 0
if(a == 1)
printf("참");
else{
printf("거짓 ");
return 1; // 문제가 발생했을 때 거짓의 값인 0이외의 값을 넣어 문제가 있음을 알림 (1,-1,342,-457)
}
return 0;
- 요약
if문과 리턴값의 참과 거짓의 구분이 다르기 때문에 혼동될 경우가 있다.
if문에서 0은 거짓, 1은 참
리턴값에서 0은 참, 나머지 값은 거짓
'C & C++ > C언어' 카테고리의 다른 글
[C] %d와 %f의 정의 (0) | 2019.10.31 |
---|---|
[C] for(;;) 구문 의미 (0) | 2019.10.31 |
[C] 별찍기 코딩 / *프로그램 (0) | 2019.10.30 |
[C] 전역변수와 static 차이 (0) | 2019.10.30 |
[C] union과 구조체의 차이 (0) | 2019.10.30 |