AI 보이는 추론 실험실

3 < 2 < 1이 참이면 세 수가 오름차순일까?

연속 비교식의 중간 불리언 값과 숫자 변환을 직접 표시하고, 두 비교를 논리곱으로 묶은 식과 대조합니다.

탐구게시 2026-10-21읽기·실험 약 9분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

저녁 학습실에서 세 숫자 카드와 종이 계산 흐름을 비교하는 여성 강사와 연필 쪽을 바라보는 작은 공식 올리
학습 장면을 표현한 AI 생성 이미지입니다. 사진 속 배치·화면은 실제 측정·운영 기록이 아닙니다. · 주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

AI가 자바스크립트에서 3 < 2 < 1이 참이라고 보고했다면, 3·2·1이 오름차순이라는 뜻일까요?

3 < 2가 거짓이 되고 숫자 0으로 변환되어 0 < 1은 참이 되는 경로와 두 독립 비교의 논리곱은 거짓인 경로
3 < 2가 거짓이 되고 숫자 0으로 변환되어 0 < 1은 참이 되는 경로와 두 독립 비교의 논리곱은 거짓인 경로 · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

수학의 연속 부등식과 코드의 평가를 구별합니다

종이에 a < b < c라고 쓰면 보통 a가 b보다 작고 b가 c보다 작다는 뜻으로 읽습니다. 자바스크립트에서는 이 표기를 그대로 옮기면 다른 계산이 됩니다. 3 < 2 < 1은 (3 < 2) < 1로 평가되어 최종 결과가 true, 즉 참입니다. 세 수가 오름차순이라는 결론과는 맞지 않습니다.

작다 비교의 결과는 숫자가 아니라 불리언(Boolean, 참·거짓 값)입니다. 첫 비교 3 < 2는 false입니다. 이어지는 비교는 원래 두 번째 수 2와 세 번째 수 1을 비교하는 것이 아니라, 방금 얻은 false와 1을 비교합니다. 결과 사이에 어떤 값이 전달되는지 추적해야 합니다.

02

거짓이 숫자 0으로 바뀌는 단계를 봅니다

이 사례의 두 번째 비교에서 false는 숫자 0으로 변환되어 0 < 1이 됩니다. 그래서 최종 결과가 참입니다. 첫 비교가 true라면 두 번째 비교에서 숫자 1로 변환됩니다. 괄호를 (3 < 2) < 1로 명확히 써도 계산의 뜻은 그대로입니다.

활동은 선택한 세 수, 첫 비교의 결과와 자료형, 두 번째 비교에 쓰인 숫자, 최종 불리언을 모두 표시합니다. 문자열을 보이는 모양으로만 읽어 거짓을 판단하는 사례와 달리, 이번에는 비교식이 만든 불리언이 다음 비교의 피연산자로 바뀌는 과정을 살핍니다.

03

두 조건을 각각 쓴 식과 반례를 비교합니다

의도한 엄격한 오름차순 검사는 (a < b) && (b < c)로 쓸 수 있습니다. &&는 앤드(AND, 두 조건을 연결하는 논리곱)로 읽습니다. 활동의 입력은 모두 유한한 숫자여서 첫 조건이 거짓이면 최종 결과도 거짓입니다. 기본값 3·2·1에서는 왼쪽 비교가 이미 거짓이므로 오름차순 검사는 거짓입니다.

1·2·3을 고르면 연속 비교와 논리곱 식이 모두 참입니다. 이 한 사례만 시험하면 잘못 옮긴 코드도 맞는 것처럼 보입니다. 0·0·1을 선택하면 연속 비교는 다시 참이지만 엄격한 오름차순은 거짓입니다. 같은 값이 허용되는지를 보려면 <와 <=의 요구도 따로 정해야 합니다.

04

최종 참·거짓만으로 설명의 뜻을 승인하지 않습니다

세 번째 수를 0이나 -1로 바꾸면 연속 비교의 마지막 단계도 달라집니다. 활동에서 각 수를 하나씩 바꾸며 두 식이 일치하는 경우와 갈리는 경우를 찾아 보세요. 갈리는 사례는 어느 식이 업무 목적을 표현하는지 검토하는 단서입니다. 둘이 같은 값을 냈다는 사실만으로 같은 뜻이라고 결론 내리지 않습니다.

활동은 부작용 없는 유한 숫자 세 개만 다룹니다. 실제 입력이 문자열·NaN·객체이거나 b가 값을 바꾸는 함수 호출이면 자료형 검사와 평가 횟수도 따로 살펴야 합니다. 임의 코드를 실행하거나 실제 AI의 판단 성능을 측정하지 않습니다. 정해진 두 자바스크립트 식을 실제 엔진에서 비교하는 학습 활동입니다.

직접 확인하기 · 규칙 기반 실행

세 숫자의 연속 비교와 논리곱 비교

3·2·1에서 첫 비교 결과 false가 두 번째 단계의 어느 숫자가 되는지 읽습니다. 1·2·3과 0·0·1을 차례로 선택해 두 식이 같은 결과인지 비교합니다. 마지막 수만 0과 -1로 바꾸고, 최종 참·거짓을 예상한 뒤 결과와 대조하고 초기화합니다.

조건을 바꾸어 직접 확인하기

3 < 2: 거짓 (false) · 자료형 boolean

첫 결과를 숫자로 바꾸면: 0

연속 비교: (3 < 2) < 1 = 참 (true)

각 관계: a < b는 거짓 (false), b < c는 거짓 (false)

두 조건의 논리곱: (a < b) && (b < c) = 거짓 (false)

각 관계의 개별 결과는 비교 설명을 위해 모두 표시합니다. 실제 && 식은 첫 조건이 거짓이면 오른쪽을 평가하지 않습니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1자바스크립트 3 < 2 < 1이 참이 되는 두 번째 비교는?
2유한 숫자 a·b·c가 엄격한 오름차순인지 검사하는 식은?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

저장 위치를 확인하고 있습니다…

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. 관계 연산자의 구문과 평가 ↗Ecma International / TC39ECMAScript 2025 §13.10–13.10.1

    연속 관계 연산의 왼쪽 평가 결과가 다음 비교의 값이 되는 규칙, 결과 Boolean을 확인. 반례는 자체 활동.

  2. 숫자 변환과 비교 ↗Ecma International / TC39ECMAScript 2025 §7.1.4 / §7.2.12

    false→+0, true→1 숫자 변환과 IsLessThan의 숫자 비교를 확인. 유한 숫자 입력만 사용.