강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

tmdal0303님의 프로필 이미지
tmdal0303

작성한 질문수

문제로 배우는 C언어

놀이기구 키제한

범위 질문드립니다!

작성

·

320

0

#include<stdio.h>

int main(){

int height;

scanf("%d",&height);

if(120<=height<=150){

printf("YES");

}

else{

printf("NO");

}

return 0;

제가 미리 짜본 코드였는데 120<=height<=150이 if문 조건식에 들어오지 못하는 이유는 무엇인가요? 제가 무언가를 착각하고 있는걸까요 ㅠㅠ 

코드 결과는 어떤 수를 집어넣어도 YES가 출력되었었습니다..

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

C언어는 친절한 언어가 아닙니다.  if(120<=height<=150)과 같은 구문을 수학처럼 120부터 150사이면 참이다. 이렇게 친절하게 해석해주지 않습니다. 위 구문이 해석되는 형태는 120<=height를 먼저 연산해 참이면 1, 거짓이면 0의 결과를 얻습니다.

그 결과값(0또는 1)과 

결과값<=150의 연산을 합니다. 그래서 항상 참이 되는 것입니다. 

tmdal0303님의 프로필 이미지
tmdal0303

작성한 질문수

질문하기