Module ā§Ē ¡ if, switch āĻāϰ loop
āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āĻāϰ loop: āĻĒā§āϰ⧠āĻāĻŦāĻŋāĻāĻž
āĻāĻ lesson-āĻ āϝāĻž āĻļāĻŋāĻāĻŦā§
- āĻāĻāĻāĻž
ifāĻāϰ āĻāĻāĻāĻželseāϞāĻŋāĻā§ āĻĻā§āĻā§ āϞāĻžāĻāύā§āϰ āĻāĻāĻāĻž āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻļāϰā§āϤāĻāĻžāĻā§ truthy āĻŦāĻž falsy āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻĄāĻŧā§āĨ¤ - āĻāĻāĻāĻž
forloop-āĻāϰ āϤāĻŋāύāĻāĻž āĻ āĻāĻļā§āϰ āύāĻžāĻŽ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāϰ āĻā§āύāĻāĻž āĻāĻāύ āĻāϞ⧠āϏā§āĻāĻž āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤ for...ofāĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻž list-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž value-āϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāϰ loop āĻā§āύ āĻĨāĻžāĻŽā§ āϏā§āĻāĻž āĻŦā§āĻāĻŋāϝāĻŧā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
Zara-āϰ step counter āĻĻāĻŋāύ⧠āĻāĻāĻāĻž āĻāϰ⧠āϏāĻāĻā§āϝāĻž āϰāĻžāĻā§, āĻāϰ āĻāϰ goal āĻšāϞ⧠8000 stepāĨ¤ āĻ āϏāĻĒā§āϤāĻžāĻšā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻž āϞāĻžāĻāύ āĻāĻžāϝāĻŧ: goal āĻšāϞā§, āύāĻžāĻāĻŋ āĻāĻŽ āĻĒāĻĄāĻŧāϞāĨ¤ āĻāϰ āĻĒā§āϰāĻĨāĻŽ program day 1 check āĻāϰā§, āϤāĻžāϰāĻĒāϰ āĻ check-āĻāĻž copy āĻāϰ⧠day 2-āĻāϰ āĻāύā§āϝ, āϤāĻžāϰāĻĒāϰ day 3-āĻāϰ āĻāύā§āϝāĨ¤ āϏāĻĒā§āϤāĻžāĻš āĻŽāĻžāύ⧠āϏāĻžāϤāĻāĻž copy, āĻŽāĻžāϏ āĻŽāĻžāύ⧠āϤāĻŋāϰāĻŋāĻļāĻāĻž, āĻāϰ day 23-āĻāϰ copy-āϤ⧠āϤāĻāύ⧠āϞā§āĻāĻž day 22āĨ¤ āĻāĻ lesson āĻĒā§āϰāϤāĻŋāĻāĻž copy āϏāϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ āĻāĻāĻāĻž āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āĻāϰ āĻāĻāĻāĻž loop āĻĻāĻŋāϝāĻŧā§āĨ¤
Zara-āϰ copy āĻāϰāĻž check
āĻāĻāĻž Zara-āϰ āĻĒā§āϰāĻĨāĻŽ program, āϤāĻŋāύ āĻĻāĻŋāύā§āϰ āĻāύā§āϝāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž check āĻāĻāĻ āĻĒāĻžāĻāĻāĻāĻž āϞāĻžāĻāύ, āĻļā§āϧ⧠āĻĻāĻŋāύāĻāĻž āĻāϞāĻžāĻĻāĻžāĨ¤
const day1 = 7500;
const day2 = 8000;
const day3 = 12030;
const goal = 8000;
if (day1 >= goal) {
console.log("day 1: met");
} else {
console.log("day 1: short");
}
if (day2 >= goal) {
console.log("day 2: met");
} else {
console.log("day 2: short");
}
if (day3 >= goal) {
console.log("day 3: met");
} else {
console.log("day 3: short");
}
day 1: short
day 2: met
day 3: met
Program āĻāĻžāĻ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āĻĻāĻŋāύ āĻŦāĻžāĻĄāĻŧāϞ⧠āĻāĻāĻžāĻŦā§ āĻāϰ āĻāϞ⧠āύāĻžāĨ¤ āĻĻā§āĻā§ āĻāĻŋāύāĻŋāϏ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻž āϏāĻžāϰāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤ āĻāĻāĻāĻž āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ (decision) āĻāĻŋāĻā§ āϞāĻžāĻāύ āĻāĻžāϞāĻžāϝāĻŧ āĻļā§āϧ⧠āϤāĻāύ, āϝāĻāύ āĻāĻāĻāĻž āĻļāϰā§āϤ āĻŽā§āϞā§: āĻāĻāĻžāĻ ifāĨ¤ āĻāĻāĻāĻž loop āĻāĻāĻ āϞāĻžāĻāύāĻā§āϞ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āĻāĻžāϞāĻžāϝāĻŧ, āĻĻāĻŋāύ⧠āĻāĻāĻŦāĻžāϰ āĻāϰā§: āĻāĻāĻžāĻ forāĨ¤ āĻĻā§āĻā§ āĻŽāĻŋāϞ⧠āϝāϤ āĻĻāĻŋāύāĻ āĻšā§āĻ, āϏāĻžāĻŽāϞ⧠āύā§āϝāĻŧāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const GOAL = 8000;
const n = nextInt();
for (let day = 1; day <= n; day++) {
const steps = nextInt();
if (steps >= GOAL) {
out.push("day " + day + ": met");
} else {
out.push("day " + day + ": short");
}
}
console.log(out.join("\n"));
day 1: short
day 2: met
day 3: met
day 4: short
day 5: met
day 6: short
day 7: met
āĻāĻ output input 7, āϤāĻžāϰāĻĒāϰ 7500 8000 12030 0 9100 4200 15000-āĻāϰ āĻāύā§āϝāĨ¤ Check āϞā§āĻāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻāĻŦāĻžāϰāĻāĨ¤ Loop āĻāĻāĻž āϏāĻžāϤāĻŦāĻžāϰ āĻāĻžāϞāĻžāϝāĻŧ, āĻāϰ āĻāĻ āĻŦāĻāϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻž āĻŦāĻžāĻĄāĻŧāϤāĻŋ āϞāĻžāĻāύ āĻāĻžāĻĄāĻŧāĻžāĻ 365 āĻŦāĻžāϰ āĻāĻžāϞāĻžāϤāĨ¤ āĻŽāĻžāύ⧠loop āϞāĻžāĻāύāĻā§āϞ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āĻāĻžāϞāĻžāϝāĻŧ, āĻāϰ āĻā§āϤāϰā§āϰ if āĻ āĻŋāĻ āĻāϰ⧠āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻā§ āĻšāĻŦā§āĨ¤
if: āϝ⧠āϞāĻžāĻāύ āĻāϞ⧠āĻļā§āϧ⧠āĻļāϰā§āϤ āĻŽāĻŋāϞāϞā§
āĻāĻāĻāĻž if statement-āĻāϰ āĻĨāĻžāĻā§ āĻā§āϞ bracket-āĻāϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻž āĻļāϰā§āϤ (condition), āĻāϰ curly brace-āĻāϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻž blockāĨ¤ Block āĻšāϞ⧠āĻāϝāĻŧā§āĻāĻāĻž āϞāĻžāĻāύ, āϝā§āĻā§āϞ⧠āĻāĻāϏāĻžāĻĨā§ āĻāϞā§āĨ¤ āĻļāϰā§āϤ āĻŽāĻŋāϞāϞ⧠block āĻāϞā§āĨ¤ āύāĻž āĻŽāĻŋāϞāϞ⧠program block-āĻāĻž āĻāĻĒāĻā§ āϤāĻžāϰ āĻĒāϰā§āϰ āϞāĻžāĻāύ āĻĨā§āĻā§ āĻāϞāϤ⧠āĻĨāĻžāĻā§āĨ¤
const steps = 9100;
if (steps >= 8000) {
console.log("Goal met. Well walked.");
}
console.log("Done for today.");
Goal met. Well walked.
Done for today.
steps-āĻā§ 500 āĻāϰ⧠āĻĻāĻžāĻ, āϤāĻāύ āĻļā§āϧ⧠āĻļā§āώ āϞāĻžāĻāύāĻāĻž print āĻšāĻŦā§āĨ¤ if-āĻāϰ āĻĒāϰ⧠āĻāĻāĻāĻž else block āĻĻāĻŋāϞ⧠āϏā§āĻāĻž āĻāϞ⧠āĻ āĻŋāĻ āĻāϞā§āĻā§ āĻā§āώā§āϤā§āϰā§, āϤāĻžāĻ āĻĻā§āĻā§ block-āĻāϰ āĻāĻāĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āĻāϞā§, āĻĻā§āĻā§ āĻāĻāϏāĻžāĻĨā§ āĻāĻāύ⧠āύāĻžāĨ¤
āĻļāϰā§āϤāĻāĻž āϝ⧠āϤā§āϞāύāĻžāĻ āĻšāϤ⧠āĻšāĻŦā§, āĻāĻŽāύ āύāĻžāĨ¤ JavaScript āϝā§āĻā§āύ⧠value-āĻā§ truthy āĻŦāĻž falsy āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻĄāĻŧā§, Module 2-āĻāϰ āύāĻŋāϝāĻŧāĻŽāĨ¤ Falsy value āĻšāϞ⧠false, 0 (āϏāĻžāĻĨā§ -0 āĻāϰ 0n), "", null, undefined āĻāϰ NaN, āĻŦāĻžāĻāĻŋ āϏāĻŦ truthyāĨ¤
const name = "";
if (name) {
console.log("Hello, " + name);
} else {
console.log("Hello, stranger");
}
const unread = 3;
if (unread) {
console.log(unread + " new messages");
}
Hello, stranger
3 new messages
āĻāĻžāϞāĻŋ string falsy, āϤāĻžāĻ else block āĻāϞā§āĻā§āĨ¤ āϏāĻāĻā§āϝāĻž 3 truthy, āϤāĻžāĻ āĻāϰ block āĻāϞā§āĻā§āĨ¤ āĻŽāĻžāύ⧠if (value) āĻāĻāĻāĻžāĻ āĻĒā§āϰāĻļā§āύ āĻāϰā§: āĻāĻ value āĻāĻŋ truthy? steps >= 8000-āĻāϰ āĻŽāϤ⧠āĻāĻāĻāĻž āϤā§āϞāύāĻžāĻ āĻāϏāϞ⧠āĻāĻāĻāĻž value, āϝā§āĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ true āύāϝāĻŧāϤ⧠falseāĨ¤
āĻāĻ track brace āϏāĻŦāϏāĻŽāϝāĻŧ āϞā§āĻā§, āĻāĻ āϞāĻžāĻāύā§āϰ block-āĻāĻāĨ¤ Brace āύāĻž āĻĻāĻŋāϞ⧠āĻā§ āĻšāϝāĻŧ, āĻļā§āώā§āϰ āĻĻāĻŋāĻā§ "āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§"-āĻāϰ ⧍ āύāĻŽā§āĻŦāϰ⧠āĻĻā§āĻāĻŦā§āĨ¤
for: āϤāĻŋāύāĻāĻž āĻ āĻāĻļ, āĻāϰ āĻā§āύāĻāĻž āĻāĻāύ āĻāϞā§
āĻāĻāĻāĻž for loop-āĻāϰ āĻā§āϞ bracket-āĻ āĻĨāĻžāĻā§ āϤāĻŋāύāĻāĻž āĻ
āĻāĻļ, semicolon āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻžāĨ¤
- āĻļā§āϰ⧠(start),
let i = 1, āĻāϞ⧠āĻāĻāĻŦāĻžāϰāĻ, āϏāĻŦāĻāĻŋāĻā§āϰ āĻāĻā§āĨ¤ - āĻĒāϰā§āĻā§āώāĻž (test),
i <= 3, āĻāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻāĻā§āĨ¤ Truthy āĻšāϞ⧠body āĻāϞā§āĨ¤ Falsy āĻšāϞ⧠loop āĻļā§āώāĨ¤ - āϧāĻžāĻĒ (step),
i++, āĻāϞ⧠body-āϰ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻĒāϰā§āĨ¤ āĻāĻāĻži-āϤ⧠1 āϝā§āĻ āĻāϰā§āĨ¤
Brace-āĻāϰ āĻā§āϤāϰā§āϰ block-āĻāĻž āĻšāϞ⧠body, āĻāϰ body āĻāĻāĻŦāĻžāϰ āĻāϞāĻž āĻŽāĻžāύ⧠āĻāĻāĻāĻž passāĨ¤ āĻā§āϰāĻŽāĻāĻž āĻā§āϝāĻŧāĻžāϞ āĻāϰā§āĨ¤ āύāĻŋāĻā§āϰ loop-āĻāĻž āĻāĻ āϧāĻžāĻĒ āĻāĻ āϧāĻžāĻĒ āĻāϰ⧠āĻāĻžāϞāĻžāĻ, āĻāϰ test-āĻāϰ column-āĻ āĻā§āĻ āϰāĻžāĻā§: āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻāĻā§ āĻāĻāĻž check āĻšāϝāĻŧāĨ¤
āĻāĻŦāĻžāϰ āĻāĻāĻ loop, āĻĒā§āϰ⧠program āĻšāĻŋāϏā§āĻŦā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž pass āϝ⧠i āĻĻā§āĻā§āĻā§, āϏā§āĻāĻž print āĻāϰā§āĨ¤
let total = 0;
for (let i = 1; i <= 3; i++) {
console.log("pass with i = " + i);
total += i;
}
console.log("total " + total);
pass with i = 1
pass with i = 2
pass with i = 3
total 6
Test āĻāϞā§āĻā§ āĻāĻžāϰāĻŦāĻžāϰ: āϤāĻŋāύāĻŦāĻžāϰ āĻŦāϞā§āĻā§ āĻšā§āϝāĻžāĻ, āĻāϰ āĻāϤā§āϰā§āĻĨāĻŦāĻžāϰ, i āϝāĻāύ 4, āĻŦāϞā§āĻā§ āύāĻžāĨ¤ āύāĻŋāĻā§āϰ āĻĻā§āĻā§ āĻāĻŦāĻŋāϤ⧠if āĻāϰ for āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻā§āĨ¤ for āĻāϏāϞ⧠āĻāĻāĻāĻž if, āϝāĻžāϰ āĻĨā§āĻā§ āĻāĻāĻāĻž āϤā§āϰ āĻāĻŦāĻžāϰ āĻāĻĒāϰ⧠āĻĢāĻŋāϰ⧠āϝāĻžāϝāĻŧāĨ¤
āĻŽāĻžāύ⧠for loop-āĻ āĻļā§āϰ⧠āĻāϞ⧠āĻāĻāĻŦāĻžāϰ, test āĻāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻāĻā§, āĻāϰ step āĻāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻĒāϰā§āĨ¤ Test āĻĒā§āϰāĻĨāĻŽ āϝā§āĻŦāĻžāϰ falsy āĻšāϝāĻŧ, loop āϏā§āĻāĻžāύā§āĻ āĻļā§āώāĨ¤
Loop-āĻāϰ i āĻā§āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻā§
for-āĻāϰ āĻļā§āϰā§āϤ⧠let āĻĻāĻŋāϝāĻŧā§ declare āĻāϰāĻž āύāĻžāĻŽāĻāĻž loop-āĻāϰ āύāĻŋāĻā§āϰāĨ¤ āĻāĻāĻž āĻĨāĻžāĻā§ āĻā§āϞ bracket āĻāϰ body-āϰ āĻā§āϤāϰā§, āĻāϰ āĻā§āĻĨāĻžāĻ āύāĻžāĨ¤ āϤāĻžāĻ āĻĻā§āĻā§ loop-āĻāϰ āĻĻā§āĻāύā§āϰāĻ āύāĻŋāĻā§āϰ āύāĻŋāĻā§āϰ i āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻā§āĻ āĻāĻžāϰā§āĻāĻž āĻĻā§āĻā§ āύāĻžāĨ¤
for (let i = 0; i < 2; i++) {
console.log("first loop", i);
}
for (let i = 5; i < 7; i++) {
console.log("second loop", i);
}
first loop 0
first loop 1
second loop 5
second loop 6
Loop āĻļā§āώ āĻšāϞ⧠i-āĻ āĻļā§āώ, āϤāĻāύ āĻāĻāĻž āĻĒāĻĄāĻŧāϤ⧠āĻā§āϞ⧠error ("āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§"-āĻāϰ ā§Ē)āĨ¤ āĻĒāϰ⧠āϝ⧠value āϞāĻžāĻāĻŦā§, āϏā§āĻāĻž āϰāĻžāĻā§ loop-āĻāϰ āĻāĻā§ declare āĻāϰāĻž āĻāĻāĻāĻž variable-āĻ, āϝā§āĻŽāύ āϰāĻžāĻāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ totalāĨ¤ āĻŽāĻžāύ⧠counter declare āĻāϰ⧠loop-āĻāϰ āĻļā§āϰā§āϤā§, āĻāϰ āĻĢāϞāĻžāĻĢāϞ loop-āĻāϰ āĻāĻā§āĨ¤
for...of: āĻĒā§āϰāϤāĻŋāĻāĻž value-āϰ āĻāύā§āϝ āĻāĻāĻāĻž pass
āĻ
āύā§āĻ āϏāĻŽāϝāĻŧ āĻāĻžāĻāĻāĻž "n āĻĒāϰā§āϝāύā§āϤ āĻā§āύā§" āύāĻž, āĻāĻžāĻāĻāĻž āĻšāϞ⧠"āĻāĻ list-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž value āĻĻā§āĻā§"āĨ¤ JavaScript value-āĻāϰ list āϰāĻžāĻā§ āĻāĻāĻāĻž array-āϤā§, square bracket-āĻ āϞāĻŋāĻā§: [4200, 9900, 8000]āĨ¤ Array āĻ āĻŋāĻāĻŽāϤ⧠āĻļā§āĻāĻžāĻŦā§ Module 7āĨ¤ āĻāĻāĻžāύ⧠āĻļā§āϧ⧠āĻĻā§āĻā§ āĻāĻĨāĻž āĻāĻžāύāϞā§āĻ āĻāϞāĻŦā§: array value-āĻā§āϞ⧠āĻā§āϰāĻŽ āϧāϰ⧠āϰāĻžāĻā§, āĻāϰ week.length āĻŦāϞ⧠āĻāϤ⧠āĻāϝāĻŧāĻāĻž āĻāĻā§āĨ¤
āĻāĻāĻāĻž for...of loop value-āĻā§āϞ⧠āϤā§āĻŽāĻžāϰ āĻšāĻžāϤ⧠āĻĻā§āϝāĻŧ āĻāĻāĻāĻž āĻāĻāĻāĻž āĻāϰā§āĨ¤ āĻāĻāĻžāύ⧠āĻļā§āϰ⧠āĻāϰāĻž, test āĻāϰāĻž āĻŦāĻž step āĻĻā§āĻāϝāĻŧāĻžāϰ āĻŽāϤ⧠āĻā§āύ⧠counter āύā§āĻ: āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ loop āĻĒāϰā§āϰ value-āĻāĻž āύā§āϝāĻŧ, āĻāϰ āĻļā§āώāĻāĻžāϰ āĻĒāϰ⧠āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧāĨ¤
const week = [4200, 9900, 8000, 7999, 15000];
let count = 0;
for (const steps of week) {
if (steps >= 8000) {
count++;
}
}
console.log(count + " of " + week.length + " days met the goal");
3 of 5 days met the goal
steps āĻāĻāĻāĻž const, āĻāϰ āϏā§āĻāĻž āĻāϞā§: āĻĒā§āϰāϤāĻŋāĻāĻž pass āĻĒāϰā§āϰ value āύāĻŋāϝāĻŧā§ āĻāĻāĻāĻž āύāϤā§āύ steps āĻĒāĻžāϝāĻŧ, āϤāĻžāĻ āĻāĻŋāĻā§āĻ āĻāĻŦāĻžāϰ assign āĻšāϝāĻŧ āύāĻžāĨ¤ String-āĻ āĻāĻāĻāĻāĻžāĻŦā§ āĻāϞā§, āĻĒā§āϰāϤāĻŋ pass-āĻ āĻāĻāĻāĻž characterāĨ¤ "āĻāĻāĻāĻž character" āĻā§āĻĨāĻžāϝāĻŧ āĻāĻŋāϝāĻŧā§ āĻāĻāĻŋāϞ āĻšāϝāĻŧ, Module 3 āĻĻā§āĻāĻžāĻŦā§āĨ¤
for (const letter of "Zara") {
console.log(letter);
}
Z
a
r
a
āĻŽāĻžāύ⧠"āĻāĻ list-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž value"-āϰ āĻāύā§āϝ for...of, āĻāϰ "āĻāĻāĻžāύ āĻĨā§āĻā§ āĻāĻāĻžāύ āĻĒāϰā§āϝāύā§āϤ āĻā§āύā§"-āϰ āĻāύā§āϝ counter-āĻāϝāĻŧāĻžāϞāĻž forāĨ¤ Lesson 04 āĻāĻāĻžāĻā§ āĻāĻāĻāĻž flowchart āĻŦāĻžāύāĻžāĻŦā§āĨ¤
Loop āĻā§āύ āĻĨāĻžāĻŽā§, āĻāϰ āĻāĻāύ āĻāĻāύā§āĻ āĻĨāĻžāĻŽā§ āύāĻž
Loop āĻĨāĻžāĻŽā§, āĻāĻžāϰāĻŖ āĻļā§āώāĻŽā§āĻļ āĻāϰ test-āĻāϰ āĻāϤā§āϤāϰ falsy āĻšāϝāĻŧāĨ¤ for loop-āĻ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ step i-āĻā§ āĻāĻ āĻāϤā§āϤāϰā§āϰ āĻĻāĻŋāĻā§ āĻāĻāĻŋāϝāĻŧā§ āύā§āϝāĻŧāĨ¤ āĻĒā§āϰāĻĨāĻŽ check-āĻāĻ test falsy āĻšāϞ⧠body āĻāĻāĻŦāĻžāϰāĻ āĻāϞ⧠āύāĻž, āĻāϰ āϏā§āĻāĻž āĻā§āύ⧠error āύāĻžāĨ¤
const n = 0;
for (let i = 1; i <= n; i++) {
console.log("never printed");
}
console.log("the loop ran 0 times");
the loop ran 0 times
Test-āĻā§ false-āĻāϰ āĻĻāĻŋāĻā§ āĻā§āĻ āύāĻž āĻāĻā§āϞ⧠loop āĻāĻāύ⧠āĻĨāĻžāĻŽā§ āύāĻžāĨ¤ āĻāĻāĻžāĻā§āĻ āĻŦāϞ⧠infinite loopāĨ¤ āύāĻŋāĻā§āϰ while loop-āĻāĻž (lesson 02-āĻ āĻļāĻŋāĻāĻŦā§) i-āϤ⧠1 āϝā§āĻ āĻāϰāϤ⧠āĻā§āϞ⧠āĻā§āĻā§, āϤāĻžāĻ i < 5 āĻāĻŋāϰāĻāĻžāϞ true āĻĨāĻžāĻā§āĨ¤
let i = 0;
let total = 0;
while (i < 5) {
total += i;
}
console.log(total);
āĻāĻŋāĻā§āĻ print āĻšāϝāĻŧ āύāĻžāĨ¤ Sign in āύāĻž āĻāϰ⧠Playground-āĻ āĻāĻ program āĻĒā§āϰāĻžāϝāĻŧ 10 āϏā§āĻā§āύā§āĻĄ āĻāϞāϞ, āϤāĻžāϰāĻĒāϰ āĻĨāĻžāĻŽāϞ Time Limit Exceeded verdict āĻĻāĻŋāϝāĻŧā§ (2026-10-07-āĻāϰ āĻāĻāĻāĻž run)āĨ¤ Submit āĻāϰāĻž program-āĻāϰ āϏāĻžāĻĨā§ judge-āĻ āĻāĻāĻ āĻāĻžāĻ āĻāϰā§āĨ¤ āϤāĻžāĻ āĻĒā§āϰāϤāĻŋāĻāĻž loop-āĻāϰ āĻā§āϤāϰ⧠āĻāĻŽāύ āĻāĻŋāĻā§ āĻĨāĻžāĻāĻž āĻāĻžāĻ, āϝā§āĻāĻž āĻāϰ test-āĻā§ false-āĻāϰ āĻĻāĻŋāĻā§ āĻāĻāĻŋāϝāĻŧā§ āύā§āϝāĻŧāĨ¤
if, else āĻāϰ āĻĻā§āĻ āϰāĻāĻŽ for loop
if (condition) {
// runs when condition is truthy
} else {
// runs when condition is falsy (the else part is optional)
}
for (start; test; step) {
// the body: runs while test is truthy
}
for (const value of list) {
// one pass per value of the list, in order
}
conditionāĻāϰtestāϝā§āĻā§āύ⧠expression āĻšāϤ⧠āĻĒāĻžāϰā§, truthy āĻŦāĻž falsy āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻĄāĻŧāĻž āĻšāϝāĻŧāĨ¤startāĻāϞ⧠āĻāĻāĻŦāĻžāϰ;testāĻāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻāĻā§;stepāĻāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻĒāϰā§āĨ¤listāĻšāϞ⧠āĻāĻāĻāĻž array āĻŦāĻž āĻāĻāĻāĻž string; āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻvalueāĻĒāϰā§āϰ item-āĻāĻž āύā§āϝāĻŧāĨ¤- Brace āĻĻāĻŋāϝāĻŧā§ block āĻā§āύāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāĻ track āĻāĻā§āϞ⧠āϏāĻŦāϏāĻŽāϝāĻŧ āϞā§āĻā§āĨ¤
āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ: āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž, āĻāĻāĻāĻž āĻļāϰā§āϤ, āĻĻā§āĻā§ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āϞāĻžāĻāύāĨ¤
const celsius = 31;
if (celsius >= 30) {
console.log("hot: carry water");
} else {
console.log("not hot");
}
hot: carry water
31 āĻāĻŽāĻĒāĻā§āώ⧠30, āϤāĻžāĻ if block āĻāϞ⧠āĻāϰ else block āĻŦāĻžāĻĻ āϝāĻžāϝāĻŧāĨ¤ celsius-āĻā§ 30 āĻāϰā§, āĻāĻāĻ āϞāĻžāĻāύ print āĻšāĻŦā§, āĻāĻžāϰāĻŖ >= āĻāĻŋāύāĻžāϰāĻžāϰ āϏāĻāĻā§āϝāĻžāĻāĻžāĻ āϧāϰā§āĨ¤
Bob āĻŦāϝāĻŧāĻžāĻŽā§ day 1-āĻ āϰāĻžāĻā§ 10 āĻāĻžāĻāĻž, day 2-āĻ 20, day 3-āĻ 30, āĻāĻāĻžāĻŦā§ āĻāĻ āϏāĻĒā§āϤāĻžāĻšāĨ¤ āĻāĻāĻāĻž for loop āĻĻāĻŋāύ āĻā§āύ⧠āĻāϰ āĻāϞāϤāĻŋ āĻŽā§āĻāĻāĻž āϰāĻžāĻā§āĨ¤
let saved = 0;
for (let day = 1; day <= 7; day++) {
saved += day * 10;
console.log("day " + day + ": " + saved);
}
day 1: 10
day 2: 30
day 3: 60
day 4: 100
day 5: 150
day 6: 210
day 7: 280
saved declare āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ loop-āĻāϰ āĻāĻā§, āϤāĻžāĻ pass-āĻāϰ āĻĒāϰ pass āĻāĻāĻž āĻŦāĻžāĻĄāĻŧāϤā§āĻ āĻĨāĻžāĻā§āĨ¤ Body-āϰ āĻā§āϤāϰ⧠declare āĻāϰāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ āĻāĻāĻž āĻāĻŦāĻžāϰ 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϤā§āĨ¤
āĻāĻ program-āĻāĻžāĻ Zara āĻāϏāϞ⧠āϰā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ āĻāĻāĻž āĻĒāĻĄāĻŧā§ n, āϤāĻžāϰāĻĒāϰ n āĻĻāĻŋāύā§āϰ stepāĨ¤ āϤāĻžāϰāĻĒāϰ āĻŦāϞ⧠āϏāĻĒā§āϤāĻžāĻšā§āϰ āĻŽā§āĻ step, āĻāϰ āĻāϝāĻŧāĻĻāĻŋāύ āĻ āĻŦāĻŋāĻļā§āϰāĻžāĻŽ āύāĻŋāϝāĻŧā§āĻā§, āĻŽāĻžāύ⧠1000-āĻāϰ āĻāĻŽ stepāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
let total = 0;
let restDays = 0;
for (let day = 1; day <= n; day++) {
const steps = nextInt();
total += steps;
if (steps < 1000) {
restDays++;
}
}
out.push("total " + total);
out.push("rest days " + restDays);
console.log(out.join("\n"));
total 52230
rest days 2
āĻāĻ output input 7, āϤāĻžāϰāĻĒāϰ 7500 8000 12030 0 9100 600 15000-āĻāϰ āĻāύā§āϝāĨ¤ Loop āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ nextInt() āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻž āĻāϰ⧠āϏāĻāĻā§āϝāĻž āĻĒāĻĄāĻŧā§, āϤāĻžāĻ āĻ āĻŋāĻ n-āĻāĻžāĻ āĻĒāĻĄāĻŧā§āĨ¤ āĻā§āύ pass restDays-āĻ āϝā§āĻ āĻāϰāĻŦā§, āϏā§āĻāĻž āĻ āĻŋāĻ āĻāϰ⧠ifāĨ¤
āĻāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāĻā§ āϞāĻžāĻā§
- āĻāĻžāώāĻžāϰ standard āύāĻŋāĻā§āĻāĨ¤
Array.prototype.includesāĻāĻŋāĻā§āĻā§āϏ āĻāϰ⧠āĻāĻāĻāĻž array-āϤ⧠āĻā§āύ⧠value āĻāĻā§ āĻāĻŋ āύāĻžāĨ¤ ECMA-262 āĻāĻāĻžāĻā§ āϞāĻŋāĻā§āĻā§ āĻāĻāĻāĻž loop āĻšāĻŋāϏā§āĻŦā§, "Repeat, while k < len", āĻāϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻžif, āĻŽāĻŋāϞ āĻĒā§āϞā§āĻ true āĻĢā§āϰāϤ āĻĻā§āϝāĻŧāĨ¤ - Express, Node-āĻāϰ web frameworkāĨ¤ Express 4-āĻāϰ router āĻāĻāĻāĻž app-āĻāϰ middleware āϰāĻžāĻā§ āĻāĻāĻāĻž list-āĻāĨ¤ āĻāĻāĻāĻž
whileloop āĻĻāĻŋāϝāĻŧā§ list-āĻāĻž āϧāϰ⧠āĻāĻā§āϝāĻŧ, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž layer āĻāĻžāϞāĻžāύā§āϰ āĻāĻā§ request-āĻāϰ path-āĻāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤ - Node-āĻāϰ event loopāĨ¤ Node-āĻāϰ āύāĻŋāĻā§āϰ C library libuv āĻāĻāĻž āĻāĻžāϞāĻžāϝāĻŧ āĻāϰ
uv_runfunction-āĻāϰ āĻāĻāĻāĻžwhileloop āĻšāĻŋāϏā§āĻŦā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āϰ⧠āĻāĻ āĻĻāĻĢāĻž event āϏāĻžāĻŽāϞāĻžāϝāĻŧ, āϝāϤāĻā§āώāĻŖ āύāĻž āĻ āĻĒā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻŽāϤ⧠āĻāĻŋāĻā§ āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻā§ (Module 12)āĨ¤ - Browser-āĻāϰ gameāĨ¤ āĻāĻāĻāĻž game āĻāĻāĻāĻž frame āĻāĻāĻā§, āϤāĻžāϰāĻĒāϰ
requestAnimationFrame-āĻā§ āĻŦāϞ⧠āĻĒāϰā§āϰ āĻŦāĻžāϰ screen refresh-āĻāϰ āĻāĻā§ āĻāĻŦāĻžāϰ call āĻāϰāϤā§, āϏāĻžāϧāĻžāϰāĻŖāϤ āϏā§āĻā§āύā§āĻĄā§ 60 āĻŦāĻžāϰā§āϰ āĻŽāϤā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž frame āĻāĻāĻāĻž loop-āĻāϰ āĻāĻāĻāĻž pass, āĻāϰ player āϝ⧠key āĻā§āĻĒā§ āĻāĻā§ āϤāĻžāϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻžif(Module 14)āĨ¤
āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§
ā§§. āĻļāϰā§āϤā§āϰ āĻĒāϰ⧠semicolonāĨ¤
const steps = 500;
if (steps >= 8000); {
console.log("Goal met");
}
Goal met
āĻā§āύ⧠error āύā§āĻ, āĻāϤā§āϤāϰāĻāĻž āĻā§āϞ: 500 step-āĻ āύāĻžāĻāĻŋ goal āĻšāϝāĻŧā§ āĻā§āĻā§āĨ¤ Semicolon if-āĻāĻžāĻā§ āĻāĻāĻāĻž āĻāĻžāϞāĻŋ statement āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻāϰ⧠āĻĻā§āϝāĻŧ, āĻāϰ āϤāĻžāϰ āĻĒāϰā§āϰ brace-āĻā§āϞ⧠āĻāϞāĻžāĻĻāĻž āĻāĻāĻāĻž block, āϝā§āĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āĻāϞā§āĨ¤ Semicolon-āĻāĻž āĻŽā§āĻā§ āĻĻāĻžāĻāĨ¤ āϤā§āĻŽāĻŋ āĻāĻāĻž āϞāĻŋāĻāĻŦā§, āĻāĻžāϰāĻŖ āĻĒā§āϰāĻžāϝāĻŧ āĻŦāĻžāĻāĻŋ āϏāĻŦ āϞāĻžāĻāύ semicolon āĻĻāĻŋāϝāĻŧā§āĻ āĻļā§āώ āĻšāϝāĻŧāĨ¤
⧍. Brace āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻāĻž if-āĻāϰ āύāĻŋāĻā§ āĻĻā§āĻā§ āϞāĻžāĻāύāĨ¤
const steps = 500;
if (steps >= 8000)
console.log("Goal met");
console.log("Badge unlocked");
Badge unlocked
Brace āύāĻž āĻĨāĻžāĻāϞ⧠if-āĻāϰ āĻāĻžāĻā§ āĻĒāĻĄāĻŧā§ āĻļā§āϧ⧠āĻ āĻŋāĻ āĻĒāϰā§āϰ āĻāĻāĻāĻž statementāĨ¤ Indentation āĻĻā§āĻā§ āĻŽāύ⧠āĻšāϝāĻŧ badge-āĻāϰ āϞāĻžāĻāύāĻāĻžāĻ if-āĻāϰ, āĻāĻŋāύā§āϤ⧠JavaScript indentation āĻĒāĻžāϤā§āϤāĻžāĻ āĻĻā§āϝāĻŧ āύāĻžāĨ¤ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ brace āϞā§āĻā§āĨ¤ āϤā§āĻŽāĻŋ āĻŦāĻžāĻĻ āĻĻā§āĻŦā§, āĻāĻžāϰāĻŖ āĻĒā§āϰāĻĨāĻŽ version-āĻ āϞāĻžāĻāύ āĻāĻŋāϞ āĻāĻāĻāĻžāĻ, āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύāĻāĻž āĻāϏ⧠āĻāĻ āϏāĻĒā§āϤāĻžāĻš āĻĒāϰā§āĨ¤
ā§Š. for loop-āĻāϰ counter āĻšāĻŋāϏā§āĻŦā§ constāĨ¤
for (const i = 0; i < 3; i++) {
console.log(i);
}
0
TypeError: Assignment to constant variable.
āĻĒā§āϰāĻĨāĻŽ pass āĻāϞā§, āϤāĻžāϰāĻĒāϰ step i++ āĻāĻāĻāĻž constant āĻŦāĻĻāϞāĻžāϤ⧠āϝāĻžāϝāĻŧ, āĻāϰ Node 22 program āĻĨāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧāĨ¤ Counter āĻŦāĻĻāϞāĻžāϝāĻŧ, āϤāĻžāĻ āĻāĻāĻž letāĨ¤ āϤā§āĻŽāĻŋ const āϞāĻŋāĻāĻŦā§, āĻāĻžāϰāĻŖ for...of āĻāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻāϰ āϏā§āĻāĻžāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻž pass āĻĒā§āϰā§āύā§āĻāĻž āύāĻž āĻŦāĻĻāϞ⧠āύāϤā§āύ āĻāĻāĻāĻž āύāĻžāĻŽ āĻĒāĻžāϝāĻŧāĨ¤
ā§Ē. Loop āĻļā§āώ āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰ⧠counter āĻĒāĻĄāĻŧāĻžāĨ¤
for (let i = 0; i < 3; i++) {
console.log(i);
}
console.log("finished at " + i);
0
1
2
ReferenceError: i is not defined
Loop-āĻāϰ i loop-āĻāϰ āϏāĻžāĻĨā§āĻ āĻļā§āώ āĻšāϝāĻŧā§ āĻā§āĻā§āĨ¤ āĻĒāϰ⧠āĻā§āύ⧠value āϞāĻžāĻāϞ⧠loop-āĻāϰ āĻāĻā§ āĻāĻāĻāĻž variable declare āĻāϰā§, āĻāϰ āĻā§āϤāϰ⧠āϏā§āĻāĻžāϝāĻŧ value āϰāĻžāĻā§āĨ¤ āϤā§āĻŽāĻŋ āĻāĻāĻž āĻāϰāϤ⧠āϝāĻžāĻŦā§, āĻāĻžāϰāĻŖ āĻŽāύ⧠āĻšāϝāĻŧ i-āĻāϰ āĻļā§āώ value-āĻāĻž āϤ⧠āĻā§āĻĨāĻžāĻ āĻĒāĻĄāĻŧā§ āĻĨāĻžāĻāĻžāϰ āĻāĻĨāĻžāĨ¤
David-āĻāϰ rocket game āĻļā§āϰ⧠āĻšāϝāĻŧ āĻāϞā§āĻā§ āĻā§āύāĻž āĻĻāĻŋāϝāĻŧā§āĨ¤ n āĻĨā§āĻā§ 1 āĻĒāϰā§āϝāύā§āϤ āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠print āĻāϰā§, āϤāĻžāϰāĻĒāϰ āϏā§āĻ āĻļāĻŦā§āĻĻāĻāĻž, āϝā§āĻāĻž rocket āĻāĻžāĻĄāĻŧā§āĨ¤
Input. āĻāĻāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž nāĨ¤
Output. n-āĻāĻž āϞāĻžāĻāύ⧠n, n - 1, āĻāĻāĻžāĻŦā§ 1 āĻĒāϰā§āϝāύā§āϤ, āϤāĻžāϰāĻĒāϰ āĻāĻāĻāĻž āϞāĻžāĻāύ⧠Go!āĨ¤
Constraints. 1 <= n <= 1000āĨ¤
Sample. Input 3 āĻĻāĻŋāϞ⧠āĻāĻžāϰ āϞāĻžāĻāύ⧠āĻāϏ⧠3, 2, 1 āĻāϰ Go!āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
āĻāϞāĻžāĻĻāĻž āĻāϰ⧠grade āĻšāϝāĻŧ āύāĻžāĨ¤ for loop āĻāϞā§āĻā§ āĻĻāĻŋāĻā§āĻ āĻā§āύāϤ⧠āĻĒāĻžāϰā§: n āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰā§, test āĻĻāĻžāĻ i >= 1, āĻāϰ step āĻĻāĻžāĻ i--āĨ¤
Zara-āϰ step counter, āĻāĻŦāĻžāϰ āĻ āĻŋāĻāĻ āĻžāĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ āĻŦāϞ⧠āĻāϰ goal āĻšāϝāĻŧā§āĻā§ āĻāĻŋ āύāĻž, āϤāĻžāϰāĻĒāϰ āĻŦāϞ⧠āĻāϝāĻŧāĻĻāĻŋāύ goal āĻšāϝāĻŧā§āĻā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠n āĻāϰ goal gāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ stepāĨ¤
Output. n + 1-āĻāĻž āϞāĻžāĻāύ: āĻā§āϰāĻŽ āϧāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ, step āĻāĻŽāĻĒāĻā§āώ⧠g āĻšāϞ⧠met, āύāĻžāĻšāϞ⧠short; āϤāĻžāϰāĻĒāϰ āĻāϝāĻŧāĻĻāĻŋāύ goal āĻšāϝāĻŧā§āĻā§ āϏā§āĻ āϏāĻāĻā§āϝāĻžāĨ¤
Constraints. 1 <= n <= 100000āĨ¤ 0 <= g <= 100000āĨ¤ 0 <= steps <= 100000āĨ¤
Sample. Input 5 8000 āĻāϰ 7500 8000 12030 0 9100 āĻĻāĻŋāϞ⧠āĻāϝāĻŧ āϞāĻžāĻāύ⧠āĻāϏ⧠short, met, met, short, met āĻāϰ 3āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Grade āĻšāĻŦā§ steps-goal āĻšāĻŋāϏā§āĻŦā§āĨ¤ Hidden test-āĻ āĻāĻā§ āĻāĻŽāύ āĻĻāĻŋāύ āϝā§āĻāĻž āĻ āĻŋāĻ goal-āĻāϰ āϏāĻŽāĻžāύ, goal 0, āĻāϰ āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻž āĻĻāĻŋāύ, āϤāĻžāĻ "āĻāĻŽāĻĒāĻā§āώā§" āĻāĻĨāĻžāĻāĻž āĻā§āϝāĻŧāĻžāϞ āĻāϰ⧠āĻĒāĻĄāĻŧā§āĨ¤
Zara āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ āĻāϝāĻŧāĻĻāĻŋāύ āĻ āĻāĻā§āϰ āĻĻāĻŋāύāĻā§ āĻšāĻžāϰāĻŋāϝāĻŧā§āĻā§āĨ¤ āϝā§āϏāĻŦ āĻĻāĻŋāύ⧠step āĻāĻā§āϰ āĻĻāĻŋāύā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ, āϏā§āĻā§āϞ⧠āĻā§āύā§āĨ¤ Day 1-āĻāϰ āĻāĻā§āϰ āĻĻāĻŋāύ āύā§āĻ, āϤāĻžāĻ āĻāĻāĻž āĻāĻāύ⧠āĻā§āύāĻž āĻšāϝāĻŧ āύāĻžāĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ stepāĨ¤
Output. āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž: āĻāϝāĻŧāĻĻāĻŋāύ āĻāĻā§āϰ āĻĻāĻŋāύā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ step āĻšāϝāĻŧā§āĻā§āĨ¤
Constraints. 1 <= n <= 100000āĨ¤ 0 <= steps <= 100000āĨ¤
Sample. Input 5 āĻāϰ 4200 9900 8000 8100 15000 āĻĻāĻŋāϞ⧠āĻāϏ⧠3: 9900 āĻšāĻžāϰāĻŋāϝāĻŧā§āĻā§ 4200-āĻā§, 8100 āĻšāĻžāϰāĻŋāϝāĻŧā§āĻā§ 8000-āĻā§, āĻāϰ 15000 āĻšāĻžāϰāĻŋāϝāĻŧā§āĻā§ 8100-āĻā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
āĻāϞāĻžāĻĻāĻž āĻāϰ⧠grade āĻšāϝāĻŧ āύāĻžāĨ¤ āĻāϤāĻāĻžāϞā§āϰ value āϰāĻžāĻā§ loop-āĻāϰ āĻāĻā§ declare āĻāϰāĻž āĻāĻāĻāĻž let-āĻ, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻļā§āώ⧠āϏā§āĻāĻž update āĻāϰā§āĨ¤ āϤāĻžāϰāĻĒāϰ n = 1 āĻĻāĻŋāϝāĻŧā§, āĻāϰ āĻĒāϰāĻĒāϰ āĻĻā§āĻā§ āϏāĻŽāĻžāύ āĻĻāĻŋāύ āĻĻāĻŋāϝāĻŧā§ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤
Zara-āϰ app āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž streak-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻž badge āĻĻā§āϝāĻŧ: āĻĒāϰāĻĒāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻāϝāĻŧāĻĻāĻŋāύ goal āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž streak āĻāϤ āĻĻāĻŋāύā§āϰ, āĻŦā§āϰ āĻāϰā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠n āĻāϰ goal gāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ stepāĨ¤
Output. āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž: āĻĒāϰāĻĒāϰ āϝāϤāĻĻāĻŋāύ step āĻāĻŽāĻĒāĻā§āώ⧠g āĻšāϝāĻŧā§āĻā§, āϤāĻžāϰ āĻŽāϧā§āϝ⧠āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž āĻāĻžāύāĻž āĻĻāĻŋāύā§āϰ āϏāĻāĻā§āϝāĻž, āĻāϰ āĻā§āύ⧠āĻĻāĻŋāύāĻ goal āύāĻž āĻšāϞ⧠0āĨ¤
Constraints. 1 <= n <= 100000āĨ¤ 0 <= g <= 100000āĨ¤ 0 <= steps <= 100000āĨ¤
Sample. Input 7 8000 āĻāϰ 9000 8000 100 8500 9100 12000 50 āĻĻāĻŋāϞ⧠āĻāϏ⧠3: day 4, 5 āĻāϰ 6āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
āĻāϞāĻžāĻĻāĻž āĻāϰ⧠grade āĻšāϝāĻŧ āύāĻžāĨ¤ āĻĻā§āĻā§ counter āϞāĻžāĻāĻŦā§: āĻāĻāύ āϝ⧠streak āĻāϞāĻā§, āĻāϰ āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āϏā§āϰāĻžāĻāĻžāĨ¤ āϝā§āĻĻāĻŋāύ goal āĻšāϝāĻŧ āύāĻž, āϏā§āĻĻāĻŋāύ āĻā§āύāĻāĻž āĻā§ āĻāϰāĻŦā§ āĻ āĻŋāĻ āĻāϰā§, āĻāϰ āĻāĻŽāύ āĻāĻāĻāĻž āϏāĻĒā§āϤāĻžāĻš āĻĻāĻŋāϝāĻŧā§ āĻāĻžāϞāĻžāĻ āϝā§āĻāĻžāύ⧠āϏā§āϰāĻž streak-āĻāĻž āĻāĻāĻĻāĻŽ āĻļā§āώā§āĨ¤
Run in CompilerāϏāĻāϰāĻžāĻāϰ āϝ⧠āĻĒā§āϰāĻļā§āύāĻā§āϞ⧠āĻāϏā§
Block-āĻ āĻāĻ āϞāĻžāĻāύ āĻĨāĻžāĻāϞā§āĻ āĻāĻŋ brace āϞāĻžāĻāĻŦā§āĻ?
āĻāĻāĻāĻž statement āĻšāϞ⧠āĻāĻžāώāĻž āϤā§āĻŽāĻžāĻā§ brace āĻŦāĻžāĻĻ āĻĻāĻŋāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻ track āϤāĻŦā§ āϏāĻŦāϏāĻŽāϝāĻŧ āϞā§āĻā§āĨ¤ Google JavaScript Style Guide-āĻ āϞā§āĻā§, āĻāϰāĻž āĻĒā§āϰāϤāĻŋāĻāĻž control structure-āĻ brace āĻāĻžāϝāĻŧ, āĻāϰ ESLint-āĻāϰ
curlyrule āĻāĻāĻž āĻā§āϰ āĻāϰ⧠āĻŽāĻžāύāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻžāϰāĻŖāĻāĻž "āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§"-āĻāϰ ⧍: āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύāĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āĻĒāϰ⧠āĻāϏā§āĨ¤āĻāĻŋāĻā§ loop 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϝāĻŧ, āĻāĻŋāĻā§ 1 āĻĨā§āĻā§, āĻā§āύ?
Test āĻļā§āϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāϞ⧠āĻĻā§āĻā§āĻ n-āĻāĻž pass āĻāϞā§āĨ¤
for (let i = 0; i < n; i++)āĻā§āύ⧠0 āĻĨā§āĻā§ n - 1, āϝā§āĻāĻž array-āϰ position-āĻāϰ āϏāĻžāĻĨā§ āĻŽā§āϞ⧠(Module 7)āĨ¤for (let day = 1; day <= n; day++)āĻā§āύ⧠1 āĻĨā§āĻā§ n, āĻŽāĻžāύā§āώ āϝā§āĻāĻžāĻŦā§ āĻĻāĻŋāύ āĻā§āύā§āĨ¤ āϝ⧠āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠print āĻāϰāĻŦā§, āϏā§āĻ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻŦā§āĻā§ āύāĻžāĻāĨ¤Step āĻšāĻŋāϏā§āĻŦā§
i++āĻāϰi += 1-āĻ āĻāĻŋ āĻā§āύ⧠āϤāĻĢāĻžāϤ āĻāĻā§?Step āĻšāĻŋāϏā§āĻŦā§ āύāĻžāĨ¤ Step-āĻāϰ āύāĻŋāĻā§āϰ value āĻĢā§āϞ⧠āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ, āϤāĻžāĻ āĻĻā§āĻā§āĻ āĻļā§āϧ⧠1 āϝā§āĻ āĻāϰā§āĨ¤
i++āĻāϰ++iāĻā§āĻĨāĻžāϝāĻŧ āĻāϞāĻžāĻĻāĻž, Module 2-āĻāϰ lesson 02 āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§, āĻāϰ āϏā§āĻāĻž āĻļā§āϧ⧠āϤāĻāύāĻ, āϝāĻāύ āϤā§āĻŽāĻŋ value-āĻāĻž āĻāĻžāĻā§ āϞāĻžāĻāĻžāĻāĨ¤n āϝāĻĻāĻŋ 0 āĻšāϝāĻŧ, āϤāĻāύ āĻā§ āĻšāϝāĻŧ?
āĻĒā§āϰāĻĨāĻŽ check-āĻāĻ test fail āĻāϰā§, āĻāϰ body āĻāĻāĻŦāĻžāϰāĻ āĻāϞ⧠āύāĻžāĨ¤ āĻāĻāĻžāĻ āĻ āĻŋāĻ āĻāĻāϰāĻŖ, error āύāĻžāĨ¤ āϤāĻŦā§ āĻāĻžāϞāĻŋ input-āĻ āϝāĻž print āĻāϰāĻžāϰ āĻāĻĨāĻž, program-āĻā§ āϏā§āĻāĻž print āĻāϰāϤā§āĻ āĻšāĻŦā§, āĻāϰ Zara āϏāĻŦāĻžāϰ āĻāĻā§ āĻāĻāĻžāĻ check āĻāϰāϤāĨ¤
for...ofāĻāϰfor...ināĻāĻŋ āĻāĻāĻ loop?āύāĻžāĨ¤
for...ofāϤā§āĻŽāĻžāϰ āĻšāĻžāϤ⧠āĻĻā§āϝāĻŧ valueāĨ¤for...ināĻĻā§āϝāĻŧ āĻāĻāĻāĻž object-āĻāϰ property-āĻā§āϞā§āϰ āύāĻžāĻŽ, āĻāϰ array-āϤ⧠āĻĻā§āϝāĻŧ position-āĻā§āϞā§, string āĻšāĻŋāϏā§āĻŦā§āĨ¤ āĻĻā§āĻā§āĻ, āĻāϰ āĻĻā§āĻā§āϰ āĻŽāĻžāĻā§āϰ āĻĢāĻžāĻāĻĻāĻāĻž, lesson 02 āĻĻā§āĻāĻžāĻŦā§āĨ¤
āĻŽā§āϞ āĻāĻĨāĻž
- āĻļāϰā§āϤ truthy āĻšāϞā§
if-āĻāϰ block āĻāϞā§, falsy āĻšāϞā§else-āĻāϰ block; āĻāĻ track brace āϏāĻŦāϏāĻŽāϝāĻŧ āϞā§āĻā§āĨ¤ - āĻāĻāĻāĻž
forloop āĻļā§āϰā§āĻāĻž āĻāĻžāϞāĻžāϝāĻŧ āĻāĻāĻŦāĻžāϰ, test āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻāĻā§, āĻāϰ step āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻĒāϰā§āĨ¤ - Test āĻĒā§āϰāĻĨāĻŽ āϝā§āĻŦāĻžāϰ falsy āĻšāϝāĻŧ, loop āϏā§āĻāĻžāύā§āĻ āĻļā§āώ; āĻļā§āϰā§āϤā§āĻ falsy āĻšāϞ⧠āĻāĻāĻāĻžāĻ pass āĻšāϝāĻŧ āύāĻžāĨ¤
- Loop-āĻāϰ āĻļā§āϰā§āϤ⧠declare āĻāϰāĻž
letāĻĨāĻžāĻā§ āĻļā§āϧ⧠āĻāĻ loop-āĻāϰ āĻā§āϤāϰā§; āĻĢāϞāĻžāĻĢāϞ āϰāĻžāĻā§ loop-āĻāϰ āĻāĻā§ declare āĻāϰāĻž variable-āĻāĨ¤ for...ofāĻāĻāĻāĻž array āĻŦāĻž string āĻĨā§āĻā§ āĻĒā§āϰāϤāĻŋ pass-āĻ āĻāĻāĻāĻž āĻāϰ⧠value āύā§āϝāĻŧ, āĻā§āύ⧠counter āϏāĻžāĻŽāϞāĻžāϤ⧠āĻšāϝāĻŧ āύāĻžāĨ¤- āĻāϰāĻ āĻāĻā§āϰā§: Under the Hood, jump āĻĻāĻŋāϝāĻŧā§ loop, iterator protocol āĻāϰ āĻāĻāĻāĻž loop lab (Pro)āĨ¤
āĻāϰāĻĒāϰ lesson 02 āĻĒā§āϰāϤāĻŋāĻāĻž statement āĻāĻāĻāĻž āĻāĻāĻāĻž āĻāϰ⧠āϧāϰāĻŦā§: else if, switch, while, do...while, for...in, break āĻāϰ continueāĨ¤
lesson ā§§ āĻļā§āώ
āĻļā§āώ āĻšāϞ⧠āĻāĻŋāĻšā§āύ āĻĻāĻŋāύ, āĻ āĻā§āϰāĻāϤāĻŋ āĻāĻĒāύāĻžāϰ āϏāĻžāĻĨā§ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĒāϰā§āϰāĻāĻž: āĻĒā§āϰāϤāĻŋāĻāĻž statement, āĻāĻāĻāĻž āĻāĻāĻāĻž āĻāϰā§