๐ธ08์ฅ. ์ ์ด๋ฌธ
์ ์ด๋ฌธ(control flow statemnet)์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ(์กฐ๊ฑด๋ฌธ)ํ๊ฑฐ๋ ๋ฐ๋ณต ์คํ(๋ฐ๋ณต๋ฌธ)ํ ๋ ์ฌ์ฉํ๋ค.
์ ์ด๋ฌธ์ ์ฝ๋์ ์คํ ํ๋ฆ์ ์ธ์์ ์ผ๋ก ์ ์ดํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ฐจ์ ์ผ๋ก ์งํํ๋ ์ง๊ด์ ์ธ ์ฝ๋์ ํ๋ฆ์ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ ๋ค. (๊ฐ๋ ์ฑ ํด์นจ)
forEach, map, filter, reduce์ ๊ฐ์
๊ณ ์ฐจํจ์
๋ฅผ ์ฌ์ฉํํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ
์์๋ ์ ์ด๋ฌธ์ ์ฌ์ฉ์ ์ต์ ํ๊ณ ์ ํ๋ค.
โ
8.1 ์ ์ด๋ฌธ์ ์ข
๋ฅ
๋ธ๋ก๋ฌธ(block statement/compound statement)
0๊ฐ ์ด์์ ๋ฌธ์ ์ค๊ดํธ๋ก ๋ฌถ์ ๊ฒ.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ก๋ฌธ์ "ํ๋์ ์คํ ๋จ์"๋ก ์ทจ๊ธํ๋ค.
์กฐ๊ฑด๋ฌธ(conditional statement)
์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก(๋ธ๋ก๋ฌธ)์ ์คํ์ ๊ฒฐ์
ifโฆelse ๋ฌธ
์กฐ๊ฑด์ : ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ
๋ ผ๋ฆฌ์ ์ฐธ, ๊ฑฐ์ง์ผ๋ก ์คํํ ์ฝ๋ ๋ธ๋ก์ ๊ฒฐ์
switch ๋ฌธ
ํํ์ : ๋ถ๋ฆฌ์ธ ๊ฐ๋ณด๋ค๋ ๋ฌธ์์ด์ด๋ ์ซ์ ๊ฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์
๋ ผ๋ฆฌ์ ์ฐธ/๊ฑฐ์ง ๋ณด๋ค๋ ๋ค์ํ ์ํฉ(case)์ ๋ฐ๋ผ ์คํํ ์ฝ๋ ๋ธ๋ก์ ๊ฒฐ์
๋ฐ๋ณต๋ฌธ(loop statement)
1. ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๊ฒฝ์ฐ ์ฝ๋ ๋ธ๋ก์ ์คํํ๋ค.
2. ์กฐ๊ฑด์์ ๋ค์ ํ๊ฐํ์ฌ ์ฌ์ ํ ์ฐธ์ธ ๊ฒฝ์ฐ ์ฝ๋๋ธ๋ก์ ๋ค์ ์คํํ๋ค.
์ ๊ณผ์ ์ ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ผ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
for ๋ฌธ
๋ฐ๋ณตํ์๊ฐ โ๋ช ํโํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
while ๋ฌธ
๋ฐ๋ณต ํ์๊ฐ โ๋ถ๋ช ํโํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
do...while ๋ฌธ
<์์ ์ฃผ์>์ฝ๋๋ธ๋ญ์ ๋จผ์ ์คํํ๊ณ ์กฐ๊ฑด์์ ํ๊ฐ.
break ๋ฌธ
๋ ์ด๋ธ ๋ฌธ, ๋ฐ๋ณต๋ฌธ, switch ๋ฌธ์ ์ฝ๋๋ธ๋ก์ ํ์ถํ๋ค.
๋ ์ด๋ธ ๋ฌธ(label statement)
: ์๋ณ์๊ฐ ๋ถ์ ๋ฌธ
ํ๋ก๊ทธ๋จ์ ์คํ ์์๋ฅผ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ
switch๋ฌธ์ case๋ฌธ๊ณผ default ๋ฌธ๋ ์ฌ์ค์
๋ ์ด๋ธ ๋ฌธ
๋ ์ด๋ธ ๋ฌธ์ ํ์ถํ๋ ค๋ฉด break๋ฌธ์ ๋ ์ด๋ธ ์๋ณ์๋ฅผ ์ง์ ํ๋ฉด ๋๋ค.
//๋ ์ด๋ธ ๋ฌธ
// 1๏ธโฃ foo ๋ผ๋ ๋ ์ด๋ธ ์๋ณ์๊ฐ ๋ถ์ ๋ฌธ
foo: console.log("foo");
// 2๏ธโฃ foo๋ผ๋ ์๋ณ์๊ฐ ๋ถ์ ๋ ์ด๋ธ ๋ธ๋ก๋ฌธ
foo: {
console.log(1);
break foo; // foo ๋ ์ด๋ธ ๋ธ๋ก๋ฌธ์ ํ์ถํ๋ค.
console.log(2);
}
๋ ์ด๋ธ ๋ฌธ์ ์ค์ฒฉ๋ for ๋ฌธ ์ธ๋ถ๋ก ํ์ถ ํ ๋ ์ ์ฉํ์ง๋ง ๊ทธ ์ธ์๋ ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅํ์ง ์๋๋ค.
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i + j === 1) break outer;
console.log(`${i}+${j} = ${i + j}`);
}
}
// 0+0 = 0 ๋
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i + j === 1) break;
console.log(`${i}+${j} = ${i + j}`);
}
}
// 0+0 = 0 ๋๋์ง ์๊ณ i=1 i=2๋ก ๋์ด๊ฐ
// 2+0 = 2
// 2+1 = 3
// 2+2 = 4
continue ๋ฌธ
๋ฐ๋ณต๋ฌธ์ ์ฝ๋ ๋ธ๋ก ์คํ์ ํ ์์ ์์ ์ค๋จํ๊ณ , ๋ฐ๋ณต๋ฌธ์ ์ฆ๊ฐ์์ผ๋ก ์คํ ํ๋ฆ์ ์ด๋์ํจ๋ค. ( break ๋ฌธ์ฒ๋ผ ๋ฐ๋ณต๋ฌธ์ ํ์ถํ์ง๋ ์๋๋ค. )
if ๋ฌธ ๋ด์์ ์คํํด์ผ ํ ์ฝ๋๊ฐ ํ์ค ์ด๋ผ๋ฉด โ ๋ฐ๋ณต๋ฌธ ๋ด์์ continue ๋ฌธ์ ์ฌ์ฉํ ํ์๋ ์๋ค.
ํ์ง๋ง, if ๋ฌธ ๋ด์์ ์คํํ์ผ ํ ์ฝ๋๊ฐ ๊ธธ๋ค๋ฉด โ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ํ ๋จ๊ณ ๋ ๊น์ด์ง๋ฏ๋ก , continue ๋ฌธ์ ์ฌ์ฉํ๋ ํธ์ด ๊ฐ๋ ์ฑ์ด ๋ ์ข์ ์ ์๋ค.
Last updated