condition repair

조건식은 bool 문장으로 쪼개면 실수가 빨리 보인다

비교 결과, 논리 조합, 단락 평가를 한 번에 쓰기보다 작은 bool 표현으로 나누면 대입 실수와 범위 조건 오류를 줄일 수 있다.

위험한 조건을 고치는 방식

before / after

대입 혼동

if (score = 60)
to

비교 의도

if (score == 60)

연쇄 비교

0 < x < 10
to

bool 둘 조합

(0 < x) && (x < 10)

실수 직접 비교

a == b
to

오차 범위

std::abs(a - b) < EPS

논리식 점검 기준

bool rules

안전한 순서

`ptr != nullptr && ptr->ready`처럼 먼저 보호 조건을 둔다.

괄호로 묶기

`&&`와 `||`가 섞이면 의도 단위를 괄호로 고정한다.

부정 범위

`!(a && b)`와 `!a && b`는 완전히 다른 조건이다.

부작용 주의

단락 평가로 뒤 함수 호출이 생략되어도 되는지 확인한다.

읽기 기준 좋은 조건식은 각 비교가 true 또는 false를 만든 뒤, `&&`, `||`, `!`로 문장처럼 연결된다는 구조가 눈에 보인다.