Lesson 1. 조건문
조건문의 대표적인 예시는 if다
if 의 범위를 정의하기 위해 JS에서는 중괄호{ }를 사용한다
if (조건) {
여기에 조건이 참일 경우에만 수행되는 코드 작성
}
조건 안에는 다양한 기호를 사용할 수 있는데 주목할 부분은 == 와 ===이다
==은 값만 같아도 true가 되기 때문에 1 == '1' 이 가능하다
따라서 type까지 동일해야하는 ===의 사용을 권장한다
오늘한 실수도 접은글에 넣어놨다
하던대로 했는데 계속 NaN이 떴다
문제는 - 기호만 가져온 것이었다
🔍 핵심 힌트
let input = fs.readFileSync(0).toString().trim();
let N = Number(input[0]);
여기서 input[0]은 첫 번째 문자만 가져와요. 예를 들어:
- 입력이 "12"라면
input[0]은 "1" → 이건 괜찮아요.
하지만 만약 음수인 -7 같은 숫자를 입력했다면?
- input = "-7"
- input[0] = "-" ← 마이너스 기호만 가져와요!
- Number("-")는 숫자가 아니므로 → NaN (Not a Number) ❗
💡 해결 방법
Number(input)으로 전체 문자열을 숫자로 바꾸어야 해요:
let N = Number(input); // ✅ 이게 맞아요!
이렇게 고치면 마이너스 기호까지 포함한 숫자 전체를 잘 인식하게 됩니다.
Lesson 2. if else 조건문
else를 사용하면 if에 해당되지 않은 경우에 실행할 코드를 작성할 수 있다
if (조건) {
여기에 조건이 참일 경우에만 수행되는 코드 작성
}
else {
여기에 조건이 거짓일 경우에만 수행되는 코드 작성
}
이 위치에 있는 코드는 조건과 무관하게 항상 수행됩니다.
Lesson 3. 삼항연산자
a = 조건 ? v1 : v2;
조건이 참일 때는 v1을, 조건이 거짓일 때는 v2가 a가 된다
const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split(" ");
let score = Number(input);
let grade = 10-parseInt(score/10);
grade === 0 ? console.log("pass") : console.log("failure");
고능하게 풀어서 한 번 넣어봤다
10 - parseInt(score/10); 부분도 마음에 들지만
삼항연산자를 깔끔하게 써서 마음에 쏙 든다
Lesson 4. if / else if / else 조건문
if (조건1) {
코드1
}
else if (조건2) {
코드2
}
else {
코드3
}
코드4
else if 를 이용하면 여러 개의 조건을 설정할 수 있다
Lesson 8. 비교연산자와 조건
if 1 > 2:
코드1 -- 위의 조건이 거짓이므로 실행되지 않음
if 1 < 2:
코드2 -- 위의 조건이 참이므로 실행됨
조건문을 비교연산자를 이용해 채울 수도 있다
Lesson 9. and 기호 ( && )
if (조건1 && 조건2) {
코드1
}
Lesson 10. or 기호 ( || )
if ( 조건1 || 조건2 ) {
코드1
}
오류난 부분 체크
🔍 코드 분석
let input = fs.readFileSync(0).toString().trim();
let a = Number(input[0]);
예를 들어, 입력이 "10"일 때:
- input: "10" ← 문자열
- input[0]: "1" ← 문자열의 첫 번째 문자만 꺼내온 것!
👉 따라서 Number(input[0])은 "1"을 숫자로 바꾸어 1이 됩니다.
즉, "10"이라는 숫자 전체를 쓰지 못하고 "1"만 사용하게 돼요.
⚠️ 그런데 왜 오류가 나냐면…
만약 입력값이 "10\n" 같이 줄바꿈이 붙어 있거나
input.trim()이 빠졌다면…
- input이 "10\n"이 되고
- input[0]은 "1"
- input[1]은 "0"
- input[2]는 "\n"
이처럼 예상치 못한 문자열이 인덱스로 접근되면, Number() 함수가 처리할 수 없는 값이 되어
결과가 NaN (Not a Number) 이 되거나, 프로그램 흐름에 오류를 줄 수 있어요.
✅ 정리하자면
표현식 의미input | 전체 입력값 (문자열) |
input[0] | 첫 번째 문자만 가져옴 |
Number(input) | 전체 입력을 숫자로 변환 |
Number(input[0]) | 첫 글자만 숫자로 바꿈 – 실수 유발 가능 |
'개인공부 > 코드트리 JS' 카테고리의 다른 글
자바스크립트 Chapter 6. 다중반복문 (0) | 2025.05.10 |
---|---|
자바스크립트 Chapter 5. 단순 반복 (0) | 2025.05.10 |
자바스크립트 Chapter 3. 연산자 (0) | 2025.04.29 |
자바스크립트 Chapter 2. 입출력 (0) | 2025.04.29 |
자바스크립트 Chapter 1. 기본 출력 (0) | 2025.03.04 |