수학의 연속 부등식과 코드의 평가를 구별합니다
종이에 a < b < c라고 쓰면 보통 a가 b보다 작고 b가 c보다 작다는 뜻으로 읽습니다. 자바스크립트에서는 이 표기를 그대로 옮기면 다른 계산이 됩니다. 3 < 2 < 1은 (3 < 2) < 1로 평가되어 최종 결과가 true, 즉 참입니다. 세 수가 오름차순이라는 결론과는 맞지 않습니다.
작다 비교의 결과는 숫자가 아니라 불리언(Boolean, 참·거짓 값)입니다. 첫 비교 3 < 2는 false입니다. 이어지는 비교는 원래 두 번째 수 2와 세 번째 수 1을 비교하는 것이 아니라, 방금 얻은 false와 1을 비교합니다. 결과 사이에 어떤 값이 전달되는지 추적해야 합니다.
거짓이 숫자 0으로 바뀌는 단계를 봅니다
이 사례의 두 번째 비교에서 false는 숫자 0으로 변환되어 0 < 1이 됩니다. 그래서 최종 결과가 참입니다. 첫 비교가 true라면 두 번째 비교에서 숫자 1로 변환됩니다. 괄호를 (3 < 2) < 1로 명확히 써도 계산의 뜻은 그대로입니다.
활동은 선택한 세 수, 첫 비교의 결과와 자료형, 두 번째 비교에 쓰인 숫자, 최종 불리언을 모두 표시합니다. 문자열을 보이는 모양으로만 읽어 거짓을 판단하는 사례와 달리, 이번에는 비교식이 만든 불리언이 다음 비교의 피연산자로 바뀌는 과정을 살핍니다.
두 조건을 각각 쓴 식과 반례를 비교합니다
의도한 엄격한 오름차순 검사는 (a < b) && (b < c)로 쓸 수 있습니다. &&는 앤드(AND, 두 조건을 연결하는 논리곱)로 읽습니다. 활동의 입력은 모두 유한한 숫자여서 첫 조건이 거짓이면 최종 결과도 거짓입니다. 기본값 3·2·1에서는 왼쪽 비교가 이미 거짓이므로 오름차순 검사는 거짓입니다.
1·2·3을 고르면 연속 비교와 논리곱 식이 모두 참입니다. 이 한 사례만 시험하면 잘못 옮긴 코드도 맞는 것처럼 보입니다. 0·0·1을 선택하면 연속 비교는 다시 참이지만 엄격한 오름차순은 거짓입니다. 같은 값이 허용되는지를 보려면 <와 <=의 요구도 따로 정해야 합니다.
최종 참·거짓만으로 설명의 뜻을 승인하지 않습니다
세 번째 수를 0이나 -1로 바꾸면 연속 비교의 마지막 단계도 달라집니다. 활동에서 각 수를 하나씩 바꾸며 두 식이 일치하는 경우와 갈리는 경우를 찾아 보세요. 갈리는 사례는 어느 식이 업무 목적을 표현하는지 검토하는 단서입니다. 둘이 같은 값을 냈다는 사실만으로 같은 뜻이라고 결론 내리지 않습니다.
활동은 부작용 없는 유한 숫자 세 개만 다룹니다. 실제 입력이 문자열·NaN·객체이거나 b가 값을 바꾸는 함수 호출이면 자료형 검사와 평가 횟수도 따로 살펴야 합니다. 임의 코드를 실행하거나 실제 AI의 판단 성능을 측정하지 않습니다. 정해진 두 자바스크립트 식을 실제 엔진에서 비교하는 학습 활동입니다.

