• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목1) 이렇게 하지 마세요, 2) 그래도 궁금하다면 ...2019-03-23 07:20
작성자 Level 10

(1) 이렇게 하지 마세요.

  • 언어마다 고유의 문법이 있는데, 
  • Python에서는 이런 문법을 지원하지만,
  • C++은 지원하지 않으니 왼쪽과 오른쪽 조건을 각각 별도로 작성하세요.
(2) 그래도 궁금하다면,
  • OR를 한게 아닙니다
  • 연산자 우선순위와 비교의 결과값이 true/false임을 기억하면 됩니다.
  • 1 <= value <= 10에서 value가 -1이면,
  • 1 <= -1이 false가 되지요. 따라서 이 문장은 결과값 false 즉 0이 됩니다
  • 이후 오른쪽과 비교하면 0 <= 10이니 결과는 true가 되는 것이지요
  • 이러니 { }로 감싼 출력문이 출력됩니다.
  • 그 다음도 1 <= value2를 먼저 계산하는데 value2가 11이니 결과는 true입니다
  • true는 숫자와 비교시 1이 되므로, 이어진 1 <= 10도 true가 되어 출력이 된겁니다.
  • 참고로 아래 프로그램을 수행하면, 앞쪽의 결과가 true/false가 나오는 경우,
  • 이는 0이거나 1이므로, else 구문이 실행되는 것을 볼수 있습니다 

#include <iostream>


int main() {

    

    int value = -1;

    

    if (1 <= value < 0) {

        std::cout << "부등호 앞에꺼n";

    }

    else {

        std::cout << "Do nothingn";

    }

    

    int value2 = 11;

    

    if (1 <= value2 < 0) {

        std::cout << "부등호 뒤에꺼n";

    }

    else {

        std::cout << "Do nothingn";

    }

}


(3) One more
  • 좋은 개발 도구를 써보기 바랍니다
  • 참고로 본인이 작성한 잘못된 if 구문에 대해서, 
  • Macos의 Xcode같은 도구는 소스 코드 레벨에 대한 경고 메시지를 다음과 같이 알려줍니다
  • "Result of comparison of constant 10 with expression of type 'bool' is always true"
  • 따라서 오류를 만들 확률을 줄여주기에 좀더 생산적인 프로그래머가 될수 있습니다
여기까지..
댓글