Front-End/JavaScript

[JavaScript] 07. ๋ฐ˜๋ณต๋ฌธ

Bigone17 2022. 1. 26. 17:59

๐ŸŸก 1. ๋ฐ˜๋ณต๋ฌธ (Loop statement)

- ๋ฐ˜๋ณต๋ฌธ์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์กฐ๊ฑด๋ฌธ์ด๋ž‘ ๊ฐ™์•„ ๋ณด์ด๋Š”๋ฐ, ๋ฐ˜๋ณต๋ฌธ์€ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ๊ฐ™์€ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐ˜๋ณต๋ฌธ์€ for๋ฌธ, while๋ฌธ, do... while๋ฌธ, for...in๋ฌธ, for..of๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (for...of๋ฌธ์€ ์ฐจํ›„์— ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์„ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜…)

 

 

๐ŸŸก 2. for๋ฌธ

- for๋ฌธ์€ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

for(์ดˆ๊ธฐํ™”์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
	์กฐ๊ฑด์‹์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๋ฐ˜๋ณต ์‹คํ–‰๋  ์ฝ”๋“œ ๋ธ”๋Ÿญ
}


// for๋ฌธ ์˜ˆ์ œ
for(let i=0; i < 3; i++) {
	console.log(i);
}
// 0
// 1
// 2

  ์œ„ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด

  • for๋ฌธ ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์กฐ๊ฑด์‹์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ฒซ ๋ถ€๋ถ„(์ดˆ๊ธฐํ™”์‹) "let i=0;"์ด๋ผ๋Š” ๋ถ€๋ถ„์€ i๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๊ณผ ๋™์‹œ์— 0์ด๋ผ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•ด์ค๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ "i < 3"๋Š” ์กฐ๊ฑด์‹์œผ๋กœ์„œ ๋ณ€์ˆ˜ i๊ฐ€ 3๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ ๋ฒˆ์งธ๋Š” ์ฆ๊ฐ์‹์œผ๋กœ์„œ ์ฝ”๋“œ ๋ธ”๋ก์„ ํ•œ๋ฒˆ ์‹คํ–‰ ํ›„ i์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ฌ์ง€ ๊ฐ์†Œ์‹œํ‚ฌ์ง€๋ฅผ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ์ˆœ์„œ๋กœ ์‹คํ–‰์ด ๋˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  1. 0์œผ๋กœ ์„ค์ •๋œ ๋ณ€์ˆ˜ i๊ฐ€ 3๋ณด๋‹ค ์ž‘์€ ์ง€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. 0 < 3์€ ์ฐธ์ด๋ฏ€๋กœ, ์ฝ”๋“œ ๋ธ”๋ก ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  2. ์ฝ”๋“œ ๋ธ”๋ก์—์„œ i๋ฅผ ์ฝ˜์†”์— ํ‘œ์‹œํ•˜๋ผ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ, ์ฝ˜์†”์—๋Š” 0์ด ์ฐํž™๋‹ˆ๋‹ค. 
  3. ์ฝ”๋“œ ๋ธ”๋ก ์•ˆ์— ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์‹คํ–‰์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์ฆ๊ฐ์‹(i++)์œผ๋กœ ๊ฐ€์„œ i๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ์ง€ ๊ฐ์†Œ์‹œํ‚ฌ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. ์ฆ๊ฐ์‹์ด ++์ด๋ฏ€๋กœ i์— +1์„ ํ•ด์ค๋‹ˆ๋‹ค. (0 +1)
  5. ๊ทธ๋Ÿผ ๋‹ค์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ๊ฐ€์„œ i๊ฐ€ 3๋ณด๋‹ค ์ž‘์€์ง€ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. (์ดˆ๊ธฐํ™”์‹์€ for๋ฌธ ์ œ์ผ ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.)
  6. i๋Š” 1์ด๋ฏ€๋กœ 1<3์€ ์ฐธ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ , ์ฝ˜์†”์—๋Š” 1์ด ์ฐํž™๋‹ˆ๋‹ค. 
  7. ์ฆ๊ฐ์‹์—์„œ i + 1 (1 + 1)์„ํ•˜์—ฌ i๋Š” 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  8. ๋‹ค์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ๊ฐ€์„œ 2<3์€ ์ฐธ์ด๋ฏ€๋กœ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ  ์ฝ˜์†”์— 2๊ฐ€ ์ฐํžˆ๊ณ  i๋Š” +1์ด ๋˜์–ด 3์ด ๋ฉ๋‹ˆ๋‹ค.
  9. ๋‹ค์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ๊ฐ€์„œ i<3์„ ํ™•์ธํ•˜๋Š”๋ฐ, i๊ฐ€ 3์ด๋ฏ€๋กœ 3<3์€ false๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  10. ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ, for๋ฌธ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

 

for (let i = 4; i > 0; i--){
	console.log(i);
}
//4
//3
//2
//1

- ์ฆ๊ฐ์‹์— ๋ฐ˜๋Œ€๋กœ ๊ฐ์†Œ๋ฅผ ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

for(;;) {}

- ๋งŒ์•ฝ, ์ดˆ๊ธฐํ™”์‹-์กฐ๊ฑด์‹-์ฆ๊ฐ์‹์„ ๋„ฃ์ง€ ์•Š์œผ๋ฉด ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

for(let i = 1; i < 10; i++){
	for(let j = 1; j < 10; j++){
    	console.log(`${i} * ${j} = ${i*j}`);
    }
}

// 1 * 1 = 1
// 1 * 2 = 2
// 1 * 3 = 3
//......
// 9 * 9 = 81

- for๋ฌธ ์•ˆ์—์„œ ๋‹ค๋ฅธ for๋ฌธ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๐ŸŸก 3. while๋ฌธ

- while๋ฌธ์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด ๋˜๋ฉด ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ boolean๊ฐ’์ด ์•„๋‹ˆ๋ฉด ๊ฐ•์ œ ๋ณ€ํ™˜์„ ์‹œํ‚ต๋‹ˆ๋‹ค.

while(์กฐ๊ฑด์‹){
	๋ฐ˜๋ณตํ•  ์ฝ”๋“œ ๋ธ”๋Ÿญ
}


//while ์˜ˆ์ œ
let w = 0;

while (w < 3){
	console.log(w);
    w++;
}
//0
//1
//2

- for๋ฌธ๊ณผ while๋ฌธ ๋‘˜ ๋‹ค ๋ฐ˜๋ณต๋ฌธ์ด์ง€๋งŒ,  for๋ฌธ์€ ํšŸ์ˆ˜์— ์˜ํ•ด์„œ ๋ฐ˜๋ณต์ด ๋˜๊ณ  while๋ฌธ์€ ์ฐธ-๊ฑฐ์ง“์— ์˜ํ•ด์„œ ๋ฐ˜๋ณต์ด ๋ฉ๋‹ˆ๋‹ค.

 

// ๋ฌดํ•œ๋ฃจํ”„
while(true){}

- ์กฐ๊ฑด์‹์ด ํ•ญ์ƒ ์ฐธ์ธ ๊ฒฝ์šฐ์—๋Š” ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

let w = 0;

while(true) {
	console.log(w);
    w++;
    
    if(w ==3){
    	break;
    }
}
//0
//1
//2

- while๋ฌธ์—์„œ ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋Œ๋ฆฌ๋ฉด์„œ ์–ด๋– ํ•œ ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฐ˜๋ณต์„ ๋ฉˆ์ถ”๊ณ  ์‹ถ์„ ๋•Œ break๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ while๋ฌธ์„ ์ •์ง€์‹œํ‚ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๐ŸŸก 4. do...while ๋ฌธ

- do...while ๋ฌธ์€ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์„œ ์กฐ๊ฑด์‹์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌด์กฐ๊ฑด ์ฝ”๋“œ ๋ธ”๋ก์ด ํ•œ ๋ฒˆ์€ ์‹คํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.

//do...while๋ฌธ
do {
	๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ ๋ธ”๋Ÿญ
}while(์กฐ๊ฑด์‹);


//do...while๋ฌธ ์˜ˆ์ œ
let d = 0;

do {
	console.log(d);
	d++;
} while (d < 3);
//0
//1
//2



------------------while && do...while-----------------
let w = 0;

while(w<0){
	console.log(`w is : ${w}`);
    w++;
}

let d = 0;

do {
	console.log(`d is : ${d}`);
    d++;
}while(d<0);

// d is 0
// do...while์€ ์ฝ”๋“œ๋ธ”๋Ÿญ์ด ๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ์€ ์‹คํ–‰๋จ

 

 

๐ŸŸก 5. for...in๋ฌธ

- for...in๋ฌธ์€ ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

//for...in
for(let key in object){}


//for...in ์˜ˆ์ œ
let obj = {
	a : 1,
	b : 2,
	c : 3,
	d: 4
};

for(let k in obj) {
	console.log(k);
}
// a
// b
// c
// d

for(let k in obj) {
	console.log(obj[k]);
}
// 1
// 2
// 3
// 4

 - ์œ„ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด, ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ k๋ผ๋Š” ๋ณ€์ˆ˜์— ์ˆœ์ฐจ์ ์œผ๋กœ obj์˜ key๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, obj์˜ key๊ฐ€ 4๊ฐœ์ด๋ฉด 4๋ฒˆ์„ ์ˆœํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

- ๊ฐ์ฒด์˜ ํ‚ค๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ๋‘ ๋ฒˆ์งธ for๋ฌธ์— ๋‚˜์˜จ ๊ฒƒ์ฒ˜๋Ÿผ object[key]ํ˜•์‹์œผ๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๐Ÿ“ ์ •๋ฆฌ 

  • ๋ฐ˜๋ณต๋ฌธ์€ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ํŠน์ • ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ณต๋ฌธ์—๋Š” for, while, do...while, for...in, for...of๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • for๋ฌธ์€ ํŠน์ • ํšŸ์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • while๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • do...while์€ while๊ณผ ๊ฐ™์ง€๋งŒ, ์กฐ๊ฑด์— ์ฝ”๋“œ ๋ธ”๋ก ๋’ค์— ๋ถ™์–ด ์žˆ์–ด ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ์ฝ”๋“œ ๋ธ”๋ก์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • for...in์€ ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) 
ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ๋ง๋ถ™์ผ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”!
์ œ ๊ธ€์ด ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์ฝ์œผ์‹  ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค
๋‹ค์Œ ํŽธ์— ๋ดฌ์š”~

728x90
๋ฐ˜์‘ํ˜•