c언어 부등호연산자

조회수 930회

궁금한게 있습니다!

C언어는 1보다 크거나 10보다 작을 때

if(1 < a < 10 ) 이거나 아니면 if( a < 10 || 1 > a) 이걸로 안되나요??

2 답변

  • C언어에서는 if(1 < a < 10 )처럼 사용할 수 없구요.

    a가 1보다 크거나 10보다 작을 때: if( a > 1 || a < 10)

    a가 1보다 크면서 10보다 작을 때: if( a > 1 && a < 10)

    크거나, 크면서, 크지만 이런 부분의 의미를 잘 생각해보고 ||, && 연산자를 사용해야 합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    1. 1 < x < 10은 거의 대부분의 언어에서 질문자님이 생각하신 대로 작동하지 않습니다. 왜냐하면 예컨대 x = 3일 경우 true < 10으로 계산되기 때문이지요.
    2. "1보다 크거나 10보다 작다"는 x > 1 || x < 10입니다. 따라서 if ( x > 1 || x < 10 )으로 쓰셔야 합니다. 좌우변 순서는 거의 중요치 않지만 부등호 방향에는 주의해 주세요.
    3. 1보다 크거나 10보다 작은 수는 사실상 모든 수입니다. -7310998도 그 조건을 만족하는 수입니다. 그렇다면 사실 이 if는 항상 참으로 평가되는 별 의미 없는 조건문입니다.

    자!! 좀더 뇌에 힘을 줘봅시다!! 질문자님이 정말 원하시는 것은 무엇이고 헷갈린 것은 무엇인가요? 답변이 도움이 되었기를 바랍니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)