๋ฐ๋ณต๋ฌธ(Iteration)
๐ ๋ฐ๋ณต๋ฌธ for
for
๋ฌธ์ ์ด๋ค ์ ํํ ํ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํฉ๋๋ค.
for(์ด๊ธฐํ; ๋ฐ๋ณต ์กฐ๊ฑด; ๋ฐ๋ณต์ด ๋ ํ ์คํ๋๋ ์ฝ๋) {
๋ฐ๋ณต์ด ๋๋ ์ฝ๋ ๋ธ๋ญ
}
์ด๊ธฐํ ํ๋ฉด์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ค๊ดํธ ์ ๋ฐ๋ณต ๋ธ๋ญ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ณต๋ฌธ ์ข ๋ฃํ๊ธฐ | break
for (let i = 0; i < 5; i++) {
console.log(i);
if (i > 2) {
break;
}
console.log("์๋
ํ์ธ์", i);
}
i๊ฐ 0๋ถํฐ 4๊น์ง 1์ฉ ์ฆ๊ฐํ๋ฉด์ ์ถ๋ ฅํ๋๋ฐ, ๋ง์ฝ i๊ฐ 2๋ณดํ ํฐ ๊ฒฝ์ฐ๋ ๋ฐ๋ณต์ ์ข ๋ฃํ๋ค.
๊ฒฐ๊ณผ
๋ฐ๋ณต๋ฌธ ๋๊ธฐ๊ธฐ | continue
๋ฐ๋ณต๋๋ ๋ธ๋ญ ์์์ continue
๋ฅผ ๋ง๋๋ฉด ๊ฑฐ๊ธฐ์ ๋ฐ๋ก ํด๋น ๋ธ๋ญ์ ์ข
๋ฃ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๊ฐ์ด ๋ค์ ๋ฐ๋ณต์ด ์์ผ๋ฉด ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋๋ค.
for (let i = 0; i < 5; i++) {
console.log(i);
if (i < 2) {
continue;
}
console.log("์๋
ํ์ธ์", i);
}
๊ฒฐ๊ณผ
for ๋ฌดํ ๋ฃจํ
์๊ดํธ ()
์์ ์๋ฌด๊ฒ๋ ์ ์ง ์๊ณ ์ธ๋ฏธ์ฝ๋ก ;
๋ง ์์ฑํ๋ฉด ์กฐ๊ฑด์ด ์์ฑ๋์ง ์์ ๋ฌดํ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ๋ณดํต for๋ฌธ ์์์ if๋ฌธ์ผ๋ก ์กฐ๊ฑด์ ์์ฑํ๊ธฐ๋ ํฉ๋๋ค.
for (;;) {
console.log("์๋
ํ์ธ์");
if (Math.random * 100 > 90) {
break;
}
}
๋๋ค์ซ์*100 ์ด 90๋ณด๋ค ํฌ๋ฉด ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ
๐ for in
for in
๋ฐ๋ณต๋ฌธ์ ๊ฐ์ฒด์ ์์ฑ๋ค์ ๋ฐ๋ณตํ์ฌ ์์
์ ์ํํฉ๋๋ค.
๊ฐ์ฒด์ key
๊ฐ์๋ ์ ๊ทผํ ์ ์์ง๋ง value
์๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
for(let(๋๋ const) in ๊ฐ์ฒด์ด๋ฆ) {}
console.log(Object.keys(๊ฐ์ฒด์ด๋ฆ)); // ๊ฐ์ฒด์ ํค ๋ฐ์์ค๊ธฐ
console.log(Object.values(๊ฐ์ฒด์ด๋ฆ)); //ํค์ ๊ฐ ๋ฐ์์ค๊ธฐ
console.log(Object.entries(๊ฐ์ฒด์ด๋ฆ)); //๋ฐฐ์ด ํํ๋ก ํค์ ๊ฐ์ ๋ฐํ
๐ for of
ES6์ ์ถ๊ฐ๋ for...of
๋ฐ๋ณต๋ฌธ์ ๋ฐฐ์ด์์ ๊ฒ๋ค์ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํฉ๋๋ค.
for of ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ปฌ๋ ์
๊ฐ์ฒด๊ฐ [Symbol.iterator]
์์ฑ์ ๊ฐ์ง๊ณ ์์ด์ผ๋ง ํฉ๋๋ค.
var iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value); // 10, 20, 30
}
์ฃผ์ํ ์
for..in
์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์์ง๋ง ๋๋๋ก ์ฐ์ง ์๋ ํธ์ด ์ข์ต๋๋ค.
for..in
๋ฐ๋ณต๋ฌธ์ ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ๋์์ผ๋ก ์ํํ๊ธฐ ๋๋ฌธ์ ํค๊ฐ ์ซ์๊ฐ ์๋ ํ๋กํผํฐ๋ ์ํ ๋์์ด ๋์ด ํ์ ์๋ ํ๋กํผํฐ๋ค์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ์๊น๋๋ค.
๋ํ for..in
๋ฐ๋ณต๋ฌธ์ ๊ฐ์ฒด์ ํจ๊ป ์ฌ์ฉํ ๋ ์ต์ ํ๋์ด ์์ด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์ ์ฌ์ฉํ๋ ๊ฒ ๋๋น 10~100๋ฐฐ ์ ๋ ๋๋ฆฝ๋๋ค.
๐ ๊ฐ์ฒด์๋ for...in
, ๋ฐฐ์ด์๋ for...of
๋ฅผ ์ฌ์ฉํ์
๐ while
๋ฌดํ ๋ฐ๋ณต ๋ฃจํ๋ฅผ ์์ฑํ ๋ for๋ฌธ ๋ฟ๋ง ์๋๋ผ while๋ฌธ์ผ๋ก๋ ์์ฑํ ์ ์์ต๋๋ค.
while (true) {
console.log("์๋
ํ์ธ์");
if (Math.random() * 100 > 90) {
break;
}
}
Math.random() * 100์ด 90๋ณด๋ค ํฌ๋ฉด ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ
do while
while๋ฌธ์ด ์ต์ด๋ก ํ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํํ๋๋ก ํฉ๋๋ค.
do {
// ์ต์ด ํ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํ
console.log("์๋
ํ์ธ์");
} while (Math.random() * 100 > 90);
์ถ์ฒ
- ํจ์คํธ์บ ํผ์ค
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํํ ๋ฆฌ์ผ
๐ฌ ์ต์ ๋๊ธ