본문 바로가기

C & C++/C언어

[C] If문과 리턴값에서 사용되는 참과 거짓 (0, 1값 의미)

반응형

  • 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