강의로 돌아가기
이지훈

이게 왜 안되는지 모르겠다.

84<scores[i] && scores[i]<100
이거나
84<scores[i]<100
이거나 뭐가 다르다는건지 모르겠네요

1 개의 답변
Demi

저도 C를 처음 배울때 비슷한 함정에 걸린 적이 있습니다. 사람이 보기에는 84<scores[i] && scores[i]<10084<scores[i]<100가 똑같다고 보입니다. 허나 C는 84<scores[i]<100

  1. 84<scores[i] 를 먼저 계산하고(true, false 중 하나가 나오겠지요?)
  2. 1의 결과에 따라 false < 100 또는 true < 100 을 계산할겁니다.

그런데, C는 false를 0, true를 1이라 생각하므로 false<100true<100은 항상 참일겁니다.
따라서 84<scores[i]<100는 항상 참이겠지요.

  • 이지훈
    아하 감사합니다 이지훈 2019.02.26 11:35
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.