https://codesandbox.io/p/sandbox/5vxpnj
문제 1. [if] 사용자명 미입력 체크
username이 비어있을 때만 경고 문구를 출력하도록 if의 조건식을 채우세요.const username = "";
if (
빈칸 답
) {
console.log("사용자명을 입력하세요");
}
문제 조건에 맞는 if 조건식은 ✅
!username
입니다.
전체 코드는 이렇게 됩니다:
const username = "";
if (!username) {
console.log("사용자명을 입력하세요");
}
설명:
!username 은 username이 falsy일 때 true가 됩니다."" (빈 문자열)도 falsy 값이므로, 사용자명이 비어있을 때만 경고 문구가 출력됩니다.! 는 논리 부정 연산자 (Logical NOT) 입니다.
console.log(!true); // false
console.log(!false); // true
console.log(!0); // true (0은 falsy이므로 !0 → true)
console.log(!123); // false (0이 아닌 숫자는 truthy이므로 !123 → false)
console.log(!""); // true (빈 문자열은 falsy이므로 !"" → true)
console.log(!"abc"); // false ("abc"는 truthy이므로 !"abc" → false)
정리하면,
!값 → 값이 참이면 false, 거짓이면 true!username 이면, username이 비어있거나 falsy일 때 조건이 참이 되어 실행됩니다.문제 2. [if-else] 짝수/홀수 판별
num이 짝수면 even, 아니면 odd가 출력되도록 if의 조건식을 채우세요.const num = 11;
if (
빈칸 답
) {
console.log("even");
} else {
console.log("odd");
}
문제 조건에 맞는 if 조건식은 ✅
num % 2 === 0
전체 코드는 이렇게 됩니다:
const num = 11;
if (num % 2 === 0) {
console.log("even");
} else {
console.log("odd");
}
설명:
% 연산자는 나머지 연산자입니다.num % 2 === 0 은 num을 2로 나눴을 때 나머지가 0이면 짝수라는 뜻입니다.문제 3. [다중조건-1칸] 무더위 조건만 채우기
온도 분기(30 이상 무더위 / 10~29 보통 / 0~9 쌀쌀 / 0 미만 한파)에서 첫 조건(무더위)에 들어갈 식만 채우세요.
const temp = 8; // 아래 분기에서 첫 조건(무더위)에 들어갈 식만 작성하세요 // 30 이상: 무더위, 10~29: 보통, 0~9: 쌀쌀, 0 미만: 한파 if (temp >= 30) { console.log("무더위"); } else if (temp >= 10) { console.log("보통"); } else if (temp >= 0) { console.log("쌀쌀"); } else { console.log("한파"); }
네 ✅ 맞습니다.
temp >= 30이 정확합니다.즉, 작성하신 코드는 완전히 올바릅니다.
원하면 제가 온도 분기 전체 로직 흐름도 그림처럼 쉽게 정리해 보여드릴 수 있어요. 보여드릴까요?
pwd가 존재한다면 길이가 8 미만일 때만 '너무 짧음'이 출력되도록 안쪽 if의 조건식을 채우세요.
const pwd = "abc123";
if (!pwd) {
console.log("비밀번호 없음");
} else {
if ( 빈칸 답 ) {
console.log("너무 짧음");
} else {
console.log("사용 가능");
}
}
pwd.length < 8
각 신호(red/yellow/green)에서 다음 case로 넘어가지 않도록 필요한 제어 구문을 채우세요.
const signal = "yellow";
switch (signal) {
case "red":
console.log("정지");
case "yellow":
console.log("주의");
break;
case "green":
console.log("진행");
break;
default:
console.log("알 수 없음");
}
빈칸에 들어갈 답은 ✅
break;
전체 코드는 이렇게 됩니다:
const signal = "yellow";
switch (signal) {
case "red":
console.log("정지");
break; // <- 여기가 빈칸 답
case "yellow":
console.log("주의");
break;
case "green":
console.log("진행");
break;
default:
console.log("알 수 없음");
}
설명:
switch에서 break를 쓰지 않으면, 조건에 맞는 case 이후의 모든 case가 연속해서 실행됩니다(이를 fall-through라고 부름).3~5는 봄입니다. 봄 구간의 누락된 case 값을 채우세요.
const month = 4;
let season = "";
switch (month) {
case 12:
case 1:
case 2:
season = "겨울"; break;
case: [빈칸답]
case 4:
case 5:
season = "봄"; break;
case 6:
case 7:
case 8:
season = "여름"; break;
default:
season = "가을";
}
console.log(season);
3(ㅇ)
isLoggedIn이 false일 때 "로그인이 필요합니다"이 출력 될 수 있도록 작성하세요.
const isLoggedIn = false;
const msg = isLoggedIn ? "환영합니다" : " ";
console.log(msg);
"로그인이 필요합니다"(ㅇ)
빈칸에 들어갈 답은 ✅
"로그인이 필요합니다"
전체 코드는 이렇게 됩니다:
const isLoggedIn = false;
const msg = isLoggedIn ? "환영합니다" : "로그인이 필요합니다";
console.log(msg); // "로그인이 필요합니다"
설명:
조건 ? 참일 때 값 : 거짓일 때 값 형태입니다.isLoggedIn이 false이므로 거짓일 때 값인 "로그인이 필요합니다"가 msg에 할당됩니다.50000 이상은 무료, 30000~49999는 2500원, 그 외는 3000원이 되도록 else if 조건식을 채우세요.
const price = 42000;
let fee = "";
if (price >= 50000) {
fee = "무료배송";
} else if () {
fee = "배송비 2500원";
} else {
fee = "배송비 3000원";
}
console.log(fee);
작성하신 else if 조건식에는 오류가 있습니다 ❌
price <= 30000 && price < 50000
price >= 30000 && price < 50000 으로 해야 합니다.올바른 전체 코드는:
const price = 42000;
let fee = "";
if (price >= 50000) {
fee = "무료배송";
} else if (price >= 30000 && price < 50000) {
fee = "배송비 2500원";
} else {
fee = "배송비 3000원";
}
console.log(fee); // "배송비 2500원"
✅ 정리:
price >= 50000price >= 30000 && price < 50000'학습중...'이 정확히 3번 출력되도록 while의 조건식을 채우세요.
let i = 0;
while () {
console.log("학습중...");
i++;
}
빈칸에 들어갈 답은 ✅
i < 3
전체 코드는 이렇게 됩니다:
let i = 0;
while (i < 3) {
console.log("학습중...");
i++;
}
설명:
i를 0부터 시작하여 1씩 증가시키면서 조건 i < 3이 참일 동안 반복됩니다."학습중..."가 정확히 3번 출력됩니다.n이 5에서 1까지 출력되도록 while의 조건식을 채우세요.
let n = 5;
while () {
console.log(n);
n--;
}
맞아요 ✅ 그대로 정답입니다.
i < 3 조건으로 반복하면 i = 0, 1, 2일 때만 반복되어 "학습중..."가 3번 출력됩니다.i++를 꼭 넣어야 무한 루프가 발생하지 않습니다.1부터 15까지 중 3의 배수만 출력되도록 if의 조건식을 채우세요.
for (let k = 1; k <= 15; k++) {
if () {
console.log(k);
}
}
빈칸에 들어갈 답은 ✅
k % 3 === 0
전체 코드는 이렇게 됩니다:
for (let k = 1; k <= 15; k++) {
if (k % 3 === 0) {
console.log(k);
}
}
설명:
% 연산자는 나머지를 구합니다.k % 3 === 0 은 k를 3으로 나눈 나머지가 0이면 3의 배수라는 뜻입니다.word의 각 문자를 한 줄에 하나씩 출력하도록 출력 식을 채우세요.
const word = "mango";
for (let x = 0; x < word.length; x++) {
console.log( 빈칸 답 );
}
지금 작성하신 코드에서는 word.length를 출력하고 있어서 "5"만 반복 출력됩니다 ❌
각 문자를 출력하려면 인덱스로 접근해야 합니다.
빈칸에 들어갈 답은 ✅
word[x]
전체 코드는 이렇게 됩니다:
const word = "mango";
for (let x = 0; x < word.length; x++) {
console.log(word[x]);
}
설명:
word[x] → 문자열 word의 x번째 문자m, a, n, g, o가 한 줄씩 출력됩니다.sum에 1부터 10까지 누적되도록 for 블록 안의 한 줄을 채우세요.
let sum = 0;
for (let t = 1; t <= 10; t++) {
[빈칸답]
}
console.log(sum);
지금 작성하신 t++는 반복 인덱스 증가용이라서 누적 합과는 관련이 없습니다 ❌
for 블록 안에서 sum에 누적하려면 한 줄은 ✅
sum += t;
전체 코드는 이렇게 됩니다:
let sum = 0;
for (let t = 1; t <= 10; t++) {
sum += t;
}
console.log(sum); // 55
설명:
sum += t → sum = sum + t55가 출력됩니다.+= 는 복합 대입 연산자 (Addition Assignment Operator) 입니다.
a += b → a = a + b 와 동일예시:
let x = 5;
x += 3; // x = x + 3
console.log(x); // 8
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i; // sum = sum + i
}
console.log(sum); // 15
=, =, /=, %= 도 비슷하게 연산 후 대입 하는 용도로 사용됩니다.각 줄 번호 r만큼 별이 찍히도록 안쪽 for의 조건식을 채우세요.
for (let r = 1; r <= 4; r++) {
let stars = "";
for (let c = 1;; c++) {
stars += "*";
}
console.log(stars);
}
빈칸에 들어갈 답은 ✅
c <= r
전체 코드는 이렇게 됩니다:
for (let r = 1; r <= 4; r++) {
let stars = "";
for (let c = 1; c <= r; c++) {
stars += "*";
}
console.log(stars);
}
설명:
r은 줄 번호를 나타냅니다 (1~4).c는 각 줄에서 별을 찍는 횟수입니다.c <= r 조건으로 각 줄 번호만큼 별이 출력됩니다.결과:
*
**
***
****
1부터 증가하며 처음 만나는 9의 배수를 출력한 뒤 반복을 즉시 종료하도록 빈칸을 채우세요.
for (let i = 1; i <= 100; i++) {
if (i % 9 === 0) {
console.log(i);
break;
}
}
작성하신 코드 ✅ 완전히 맞습니다.
i % 9 === 0 → 9의 배수 체크console.log(i) → 처음 만나는 9의 배수 출력break; → 반복문 즉시 종료결과:
for (let i = 1; i <= 100; i++) {
if (i % 9 === 0) {
console.log(i); // 9
break;
}
}
4의 배수는 더하지 않도록 해당 회차를 건너뛰는 제어 구문을 채우세요.
let total = 0;
for (let i = 1; i <= 30; i++) {
if (i % 4 === 0) {
}
total += i;
}
console.log(total);
작성하신 코드 ✅ 완전히 맞습니다.
i % 4 === 0 → 4의 배수 체크continue; → 4의 배수일 경우 해당 회차 건너뛰기total에 누적결과:
let total = 0;
for (let i = 1; i <= 30; i++) {
if (i % 4 === 0) {
continue;
}
total += i;
}
console.log(total); // 336
true일 때 코드 블럭 실행true가 되는 분기만 실행case에서 실행 시작, 보통 각 case 끝에 break;조건 ? 값1 : 값2true인 동안 반복(초기식; 조건식; 증감식) 형태로 횟수 제어