자바스크립트 Chapter 4. 조건문

2025. 5. 6. 17:45·개인공부/코드트리 JS

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
'개인공부/코드트리 JS' 카테고리의 다른 글
  • 자바스크립트 Chapter 6. 다중반복문
  • 자바스크립트 Chapter 5. 단순 반복
  • 자바스크립트 Chapter 3. 연산자
  • 자바스크립트 Chapter 2. 입출력
피까츄
피까츄
프로그래밍 마스터가 될테야
  • 피까츄
    프로그래밍 마스터
    피까츄
  • 전체
    오늘
    어제
    • 분류 전체보기 (63) N
      • 컴퓨터가 이상해요 모음집 (3)
      • 프로그래밍 (0)
      • 회고 (0)
      • 1학년 (21)
        • 명품 HTML+CSS+JS (10)
        • 쉽게 배우는 C언어 Express (2)
        • R언어 (9)
      • 2학년 (3)
        • C언어로 쉽게 풀어쓴 자료구조 (1)
        • 프로그래밍 언어론 (2)
      • 개인공부 (23) N
        • 백준 (17)
        • 코드트리 JS (6) N
      • 교재 (9)
        • 이것이 C++이다 (0)
        • 이것이 JAVA다 (0)
        • 혼자 공부하는 컴퓨터구조 + 운영체제 (1)
        • 혼자 공부하는 데이터통신 (0)
        • 코어 자바스크립트 (8)
      • 유데미 (3)
        • 100일 코딩 챌린지 (3)
  • 블로그 메뉴

    • 방명록
    • 그림블로그
    • 3D 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    the package javax.swing is not accessible
    우분투C
    윈도우 기능 켜기
    우분투 설치 오류
    작업표시줄클릭안됨
    js #자바스크립트_기초
    복습
    0x80370102오류코드
    HTML5+CSS3+Javascript 웹 프로그래밍 #연습문제 #이론문제 #실습문제 #풀이 #정답
    프로그래밍언어론
    우분투java
    가상현실 설정
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
피까츄
자바스크립트 Chapter 4. 조건문
상단으로

티스토리툴바