확인한 환경과 범위

Windows · Node.js v24.18.0. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.

이 글의 순서 5개 단락

비교와 조건

비교 연산자는 두 값을 비교해 true 또는 false를 만듭니다. >=는 왼쪽이 오른쪽 이상인지 확인하고, >는 초과인지 확인합니다. <=와 <는 이하와 미만을 나타냅니다. ===는 값과 자료형을 엄격하게 비교하므로 숫자 85와 문자열 "85"를 같다고 취급하지 않습니다.

if는 괄호 안의 조건이 참일 때 중괄호 안의 코드를 실행합니다. 앞의 조건이 거짓이면 else if의 조건을 차례로 검사하고, 모든 조건이 거짓이면 else를 실행합니다. 이처럼 연결된 조건에서는 첫 번째로 참이 된 경로 하나만 실행합니다.

실행 예제와 결과

const score = 85;
let grade;

console.log("90 이상인가요?", score >= 90);
console.log("80 이상인가요?", score >= 80);
console.log("정확히 85인가요?", score === 85);

if (score >= 90) {
  grade = "A";
} else if (score >= 80) {
  grade = "B";
} else if (score >= 70) {
  grade = "C";
} else {
  grade = "D";
}

console.log(`점수: ${score}`);
console.log(`등급: ${grade}`);
console.log("판정이 끝났습니다.");

점수 85는 90 이상이 아니므로 첫 조건은 거짓입니다. 다음 조건인 80 이상은 참이므로 grade에 "B"가 저장됩니다. 이후의 70 이상 조건과 마지막 else는 검사하거나 실행할 필요가 없습니다. 조건문이 끝난 뒤에는 저장된 등급을 템플릿 문자열로 출력합니다.

조건문과 점수별 등급 — 첫 예제의 실제 실행 결과

경계값과 조건 순서

등급 기준이 90 이상 A, 80 이상 B, 70 이상 C라면 90은 A이고 80은 B이며 70은 C입니다. >=에 등호가 포함되어 있기 때문입니다. 79는 80 이상이 아니지만 70 이상이므로 C입니다. 기준 바로 아래와 기준 자체를 나란히 살펴보면 실수를 찾기 쉽습니다.

조건의 순서도 중요합니다. 70 이상을 먼저 검사하면 85도 그 조건을 만족해 C로 처리됩니다. 더 높은 점수 기준부터 검사해야 원하는 등급을 얻습니다. 이 예제는 점수가 숫자이며 유효한 범위에 있다고 가정합니다. 범위를 검증해야 하는 프로그램이라면 별도의 조건이 필요합니다.

조건의 참·거짓을 표로 따라가기

조건문을 디버깅할 때는 최종 등급만 보지 말고 각 비교가 참인지 거짓인지 확인하세요. 숫자 85는 90 이상이 아니지만 80 이상과 70 이상에는 모두 해당합니다. if와 else if로 연결된 구조는 여러 조건이 참일 수 있어도 처음 선택된 경로 하나만 실행합니다.

점수처음으로 참이 되는 조건등급
90score >= 90A
85score >= 80B
70score >= 70C
69위의 조건이 모두 거짓D

예제의 let grade;는 이름만 선언하고 나중에 값을 결정하는 형태입니다. else가 있어 앞의 조건이 모두 거짓인 경우에도 등급이 정해집니다. 마지막 경로를 빠뜨리면 어떤 입력에서는 값이 정해지지 않은 채 다음 줄로 진행할 수 있습니다. 조건문 뒤에서 사용하는 변수가 모든 경로에서 원하는 값을 갖는지 살펴보세요.

독립된 if를 여러 번 적는 경우와 연결된 else if는 흐름이 다릅니다. 독립된 문장들은 각각 조건을 검사하므로 앞에서 넣은 등급을 뒤에서 덮어쓸 수 있습니다. 구간 중 하나를 선택하는 문제라면 연결 구조와 조건 순서를 함께 설계해야 합니다. 이 예제에는 점수가 0부터 100 사이인지 확인하는 처리가 없으므로 101도 A가 됩니다. 정상 등급 판정과 유효한 입력 검사는 서로 다른 책임이라는 점을 기억하세요.

연습문제와 해설

예제의 score를 90, 80, 69로 각각 바꾸었을 때 등급을 예상해 보세요. 순서대로 A, B, D입니다. 90은 첫 조건을 만족하고, 80은 첫 조건을 통과하지 못한 뒤 두 번째 조건을 만족합니다. 69는 세 기준을 모두 만족하지 못해 마지막 else로 갑니다.

다음으로 score === "85"의 결과를 생각해 보세요. 점수가 숫자 85라면 결과는 false입니다. 문자 모양이 같더라도 오른쪽은 문자열이므로 자료형이 다릅니다. 숫자 비교가 목적이라면 값이 숫자인지 확인하고 필요한 경우 앞에서 배운 명시적 변환을 사용하세요.

CHECK THE SOURCE

참고한 공식 문서

기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.

한 줄씩 이해하고, 차곡차곡 기록합니다.이 글의 오류 제보하기 ↗