요약
조건은 값이 참 또는 거짓인 식이다. 이 수업은 C++에서 조건을 어떻게 만드는지 공부한다. 두 값을 비교하여 bool 값을 내는 여섯 개의 관계 연산자, 논리학의 연언, 선언, 부정처럼 조건을 결합하는 세 개의 논리 연결사 &&, ||, !, 그리고 이들 사이의 순서와 산술에 대한 순서를 정하는 우선순위가 그것이다. 또한 C++가 수학의 표기에서 벗어나는 두 가지 특징을 공부한다. 하나는 연쇄 1 < x < 5 표기로, 컴파일은 되지만 보이는 대로의 뜻이 아니다. 다른 하나는 단락 평가로, && 연산자와 || 연산자의 첫째 피연산자가 이미 결과를 정했으면 둘째 피연산자는 계산되지 않으며, 이 덕분에 위험한 연산을 보호할 수 있다. 마지막으로 드모르간 법칙에 의한 복합 조건의 부정을 진리표로 확인하고, 중심 예로 윤년의 조건과 그 부정을 다룬다. 이 단원에는 아직 조건문이 없다. 조건은 계산되어 true 또는 false 값으로 출력될 뿐이며, 조건문 수업에서 조건이 프로그램을 이끌게 된다.
학습 목표
- “가 1 이상 10 이하이다(양 끝 포함)” 같은 문장을 옮기는 복합 조건을 C++로 쓴다.
- 드모르간 법칙으로 복합 조건을 부정하고, 그 동치를 진리표로 확인한다.
count != 0 && total / count > 2조건처럼, 단락 평가를 써서 연산을 보호한다.1 < x < 5표기의 오류를 찾아내고, 그것이 무엇을 계산하는지 설명하고, 바로잡는다.
식으로서의 조건
문자, 불리언, 형 변환, 상수 수업은 bool 타입과 그 두 값 true, false를 소개했고, 산술 연산 수업은 식에 우선순위와 결합 방향이 정하는 트리와, 피연산자가 정하는 자료형이 있음을 보였다. 이 수업은 두 생각을 하나로 모은다. 조건은 bool 타입의 식이다. 무언가를 묻는 문이 아니라, 결과가 곧 답인 계산이다. count < 10 식은 count + 1 식과 똑같이 계산된다. 피연산자를 취하고, 연산자를 적용하고, 값을 얻는다. 다만 그 값이 수가 아니라 true 또는 false 값일 뿐이다. 그렇다면 산술식에 성립하는 것은 모두 조건에도 성립한다. 조건에는 우선순위가 있고, 트리가 있으며, 이름 붙은 변수에 저장할 수 있고(const bool inRange{…}), 출력할 수도 있다. 여기서 이 수업 전체를 꿰뚫는 물음이 나온다. 어떤 문장(“그해는 윤년이다”, “나이가 18 이상 65 이하이다”)이 주어졌을 때, 가능한 모든 데이터에 대해 정확히 그 진리값을 갖는 식은 무엇인가?
콘텐츠를 불러오는 중…