Responsive Advertisement

JavaScript์˜ For ๋ฃจํ”„: ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ

JavaScript์—์„œ for ๋ฃจํ”„๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ˜๋ณต๋ฌธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์€ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ, ๋™์ผํ•œ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” JavaScript์˜ for ๋ฃจํ”„์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๋‹ค์–‘ํ•œ ํ™œ์šฉ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

JavaScript์˜ for ๋ฃจํ”„๋ž€?

for ๋ฃจํ”„๋Š” ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฃจํ”„๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ๊ฐ’, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์„ ์„ค์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

for ๋ฃจํ”„ ๊ธฐ๋ณธ ๊ตฌ์กฐ

for (์ดˆ๊ธฐ๊ฐ’; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

for ๋ฃจํ”„๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ์ดˆ๊ธฐ๊ฐ’: ๋ฃจํ”„๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋Š” ์ดˆ๊ธฐ ์„ค์ •์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๊ฐ€ ์ด๊ณณ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด์‹: ๊ฐ ๋ฐ˜๋ณต์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ํ‰๊ฐ€๋˜๋ฉฐ, ์กฐ๊ฑด์‹์ด true์ผ ๊ฒฝ์šฐ์—๋งŒ ๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. false์ผ ๊ฒฝ์šฐ ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ์ฆ๊ฐ์‹: ๋ฃจํ”„๊ฐ€ ํ•œ ๋ฒˆ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋˜๋ฉฐ, ์ฃผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค.

for ๋ฃจํ”„ ์˜ˆ์‹œ

// 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ถœ๋ ฅํ•˜๋Š” for ๋ฃจํ”„
for (let i = 1; i <= 5; i++) {
    console.log(i);
}

์œ„ ์ฝ”๋“œ์—์„œ๋Š” i ๋ณ€์ˆ˜๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 5๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๊ฐ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. i++๋Š” ๋ฐ˜๋ณต์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค i ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์กฐ๊ฑด์‹ i <= 5๊ฐ€ false๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„, ๋ฃจํ”„๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

for ๋ฃจํ”„์˜ ๋‹ค์–‘ํ•œ ํ™œ์šฉ

for ๋ฃจํ”„๋Š” ๋‹จ์ˆœํ•œ ์ˆซ์ž ๋ฐ˜๋ณต ์™ธ์—๋„ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํšŒํ•˜๊ฑฐ๋‚˜ ๋ˆ„์  ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

1. ๋ฐฐ์—ด ์ˆœํšŒ

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, for ๋ฃจํ”„๋Š” ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

// ๋ฐฐ์—ด ์š”์†Œ ์ถœ๋ ฅ ์˜ˆ์‹œ
const fruits = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '๋”ธ๊ธฐ', '์˜ค๋ Œ์ง€'];

for (let i = 0; i < fruits.length; i++) {
    console.log(fruits[i]);
}

์ด ์ฝ”๋“œ์—์„œ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฃจํ”„๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉฐ, ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. fruits.length๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๊ณ , ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. ๋ˆ„์  ๊ฐ’ ๊ณ„์‚ฐ

for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด์˜ ์ˆซ์ž ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋Š” ๋ˆ„์  ๊ณ„์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// ๋ฐฐ์—ด ์š”์†Œ ํ•ฉ๊ณ„ ๊ณ„์‚ฐ
const numbers = [10, 20, 30, 40];
let sum = 0;

for (let i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}

console.log('ํ•ฉ๊ณ„:', sum);

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” ๋ฐฐ์—ด numbers์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ sum์— ๋ˆ„์ ํ•˜์—ฌ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆซ์ž๊ฐ€ ๋”ํ•ด์ ธ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

3. ์ง์ˆ˜์™€ ํ™€์ˆ˜ ๊ตฌ๋ถ„

for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฒ”์œ„ ๋‚ด์˜ ์ง์ˆ˜์™€ ํ™€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋Š” 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ์ง์ˆ˜์™€ ํ™€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

// ์ง์ˆ˜์™€ ํ™€์ˆ˜ ๊ตฌ๋ถ„
for (let i = 1; i <= 10; i++) {
    if (i % 2 === 0) {
        console.log(i + '๋Š” ์ง์ˆ˜์ž…๋‹ˆ๋‹ค.');
    } else {
        console.log(i + '๋Š” ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค.');
    }
}

์ด ์ฝ”๋“œ๋Š” i % 2 === 0์„ ํ†ตํ•ด i๊ฐ€ ์ง์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๊ณ , ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ง์ˆ˜๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” ํ™€์ˆ˜๋กœ ํŒ๋‹จํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

for ๋ฃจํ”„์™€ ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ ๋น„๊ต

JavaScript์—๋Š” for ๋ฃจํ”„ ์™ธ์—๋„ ๋ฐ˜๋ณต๋ฌธ์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. while ๋ฃจํ”„, for...of ๋ฃจํ”„, for...in ๋ฃจํ”„ ๋“ฑ์ด ์žˆ๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

1. while ๋ฃจํ”„

while ๋ฃจํ”„๋Š” ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ๋งŒ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด false๊ฐ€ ๋˜๋ฉด ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. for ๋ฃจํ”„์™€ ๋‹ฌ๋ฆฌ, ์ดˆ๊ธฐ๊ฐ’๊ณผ ์ฆ๊ฐ์‹์ด ๋ณ„๋„๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

// while ๋ฃจํ”„ ์˜ˆ์‹œ
let i = 1;

while (i <= 5) {
    console.log(i);
    i++;
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” i๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋™์•ˆ 5๊นŒ์ง€ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. i++๋Š” ๋ฃจํ”„๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

2. for...of ๋ฃจํ”„

for...of ๋ฃจํ”„๋Š” ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์š”์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

// for...of ์˜ˆ์‹œ
const fruits = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '๋”ธ๊ธฐ'];

for (const fruit of fruits) {
    console.log(fruit);
}

์ด ์ฝ”๋“œ๋Š” for...of๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด fruits์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. for...in ๋ฃจํ”„

for...in ๋ฃจํ”„๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ˆœํšŒํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ํ‚ค ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// for...in ์˜ˆ์‹œ
const person = { name: 'John', age: 30, city: 'New York' };

for (const key in person) {
    console.log(key + ': ' + person[key]);
}

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ฐ์ฒด person์˜ ๊ฐ ์†์„ฑ ํ‚ค์™€ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. for...in์€ ๊ฐ์ฒด์˜ ๋ชจ๋“  ์†์„ฑ์„ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

for ๋ฃจํ”„์˜ ํ™•์žฅ

for ๋ฃจํ”„๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ˆซ์ž ๋ฐ˜๋ณต๋ถ€ํ„ฐ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ฒ˜๋ฆฌ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, break์™€ continue ๊ฐ™์€ ์ œ์–ด๋ฌธ๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ˜๋ณต ํ๋ฆ„์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. break ๋ฌธ

break ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์กฐ๊ธฐ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฐ˜๋ณต ์ข…๋ฃŒ
for (let i = 1; i <= 10; i++) {
    if (i === 5) {
        break;  // i๊ฐ€ 5์ผ ๋•Œ ๋ฃจํ”„ ์ข…๋ฃŒ
    }
    console.log(i);
}

์œ„ ์ฝ”๋“œ์—์„œ๋Š” i๊ฐ€ 5์ผ ๋•Œ break ๋ฌธ์„ ๋งŒ๋‚˜ ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

2. continue ๋ฌธ

continue ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฐ˜๋ณต ๊ฑด๋„ˆ๋›ฐ๊ธฐ
for (let i = 1; i <= 10; i++) {
    if (i === 5) {
        continue;  // i๊ฐ€ 5์ผ ๋•Œ๋งŒ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
    }
    console.log(i);
}

์œ„ ์ฝ”๋“œ์—์„œ๋Š” i๊ฐ€ 5์ผ ๋•Œ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ , ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ๋ชจ๋‘ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

JavaScript์˜ for ๋ฃจํ”„๋Š” ๋ฐ˜๋ณต ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋„๊ตฌ๋กœ, ๋งค์šฐ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์ˆœํšŒ, ๊ฐ’ ๋ˆ„์ , ์กฐ๊ฑด ์ฒ˜๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, break์™€ continue ๊ฐ™์€ ์ œ์–ด๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋”์šฑ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” for ๋ฃจํ”„์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์™€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ™œ์šฉ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํšจ์œจ์ ์ธ ๋ฐ˜๋ณต๋ฌธ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ