๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ต์ฌ) 8์ฅ. ์ ์ด๋ฌธ
์ ์ด๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ(์กฐ๊ฑด๋ฌธ)ํ๊ฑฐ๋ ๋ฐ๋ณต ์คํ(๋ฐ๋ณต๋ฌธ)ํ ๋ ์ฌ์ฉํ๋ค.
01. ๋ธ๋ก๋ฌธ
0๊ฐ ์ด์์ ๋ฌธ์ ์ค๊ดํธ๋ก ๋ฌถ์ ๊ฒ
โ ๏ธ ๋ธ๋ก๋ฌธ์ ์ธ์ ๋ ๋ฌธ์ ์ข ๋ฃ๋ฅผ ์๋ฏธํ๋ ์์ฒด ์ข ๊ฒฐ์ฑ์ ๊ฐ๋๋ค. ๋ฐ๋ผ์ ๋ธ๋ก๋ฌธ์ ๋์๋ ์ธ๋ฏธ์ฝ๋ก ์ ๋ถ์ด์ง ์๋๋ค.
02. ์กฐ๊ฑด๋ฌธ
์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก(๋ธ๋ก๋ฌธ)์ ์คํ์ ๊ฒฐ์ ํ๋ค.
์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ํํ์์ด๋ค.
1) if ... else ๋ฌธ
๐ฅ๏ธ ์์ ์ฝ๋
if (์กฐ๊ฑด์) {
// ์กฐ๊ฑด์์ด ์ฐธ์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
} else {
// ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
}
โ ๏ธ if ๋ฌธ์ ์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋์ด์ผ ํ๋ค.
๐ฅ๏ธ ์์ ์ฝ๋ <์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ์คํ๋ ์ฝ๋ ๋ธ๋ก ๋๋ฆฌ๊ธฐ>
if (์กฐ๊ฑด์1) {
// ์กฐ๊ฑด์1์ด ์ฐธ์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
} else if (์กฐ๊ฑด์2) {
// ์กฐ๊ฑด์2๊ฐ ์ฐธ์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
} else if (์กฐ๊ฑด์3) {
// ์กฐ๊ฑด์3์ด ์ฐธ์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
} else {
// ์กฐ๊ฑด์1, ์กฐ๊ฑด์2, ์กฐ๊ฑด์3์ด ๋ชจ๋ ๊ฑฐ์ง์ด๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
}
๐ก if ... else ๋ฌธ์ ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ก ๋ฐ๊ฟ ์ธ ์ ์๋ค.
๐ฅ๏ธ ์์ ์ฝ๋
// x๊ฐ ์ง์์ด๋ฉด result ๋ณ์์ ๋ฌธ์์ด '์ง์'๋ฅผ ํ ๋นํ๊ณ , ํ์์ด๋ฉด ๋ฌธ์์ด 'ํ์'๋ฅผ ํ ๋นํ๋ค.
var x = 2;
var result;
if (x % 2) { // 2 % 2๋ 0์ด๋ค. ์ด๋ 0์ false๋ก ์๋ฌต์ ๊ฐ์ ๋ณํ๋๋ค.
result = 'ํ์';
} else {
result = '์ง์';
}
console.log(result); // ์ง์
โก๏ธ ์ ์์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ก ๋ฐ๊ฟ ์ธ ์ ์๋ค.
๐ฅ๏ธ ์์ ์ฝ๋
var x = 2;
// 0์ false๋ก ์ทจ๊ธํ๋ค.
var result = x % 2 ? 'ํ์' : '์ง์';
console.log(result); // ์ง์
2) switch ๋ฌธ
- switch ๋ฌธ : ์ฃผ์ด์ง ํํ์์ ํ๊ฐํ์ฌ ๊ทธ ๊ฐ๊ณผ ์ผ์นํ๋ ํํ์์ ๊ฐ๋ case ๋ฌธ์ผ๋ก ์คํ ํ๋ฆ์ ์ฎ๊ธด๋ค.
- case ๋ฌธ : ์ํฉ์ ์๋ฏธํ๋ ํํ์์ ์ง์ ํ๊ณ ์ฝ๋ก ์ผ๋ก ๋ง์น๋ค. ๊ทธ ๋ค์ ์คํํ ๋ฌธ๋ค์ ์์น์ํจ๋ค.
๐ฅ๏ธ ์์ ์ฝ๋
switch (ํํ์) {
case ํํ์1:
switch ๋ฌธ์ ํํ์๊ณผ ํํ์1์ด ์ผ์นํ๋ฉด ์คํ๋ ๋ฌธ;
break;
case ํํ์2:
switch ๋ฌธ์ ํํ์๊ณผ ํํ์2๊ฐ ์ผ์นํ๋ฉด ์คํ๋ ๋ฌธ;
break;
default;
switch ๋ฌธ์ ํํ์๊ณผ ์ผ์นํ๋ case ๋ฌธ์ด ์์ ๋ ์คํ๋ ๋ฌธ;
}
๐ก switch ๋ฌธ์ ๋ถ๋ฆฌ์ธ ๊ฐ๋ณด๋ค๋ ๋ฌธ์์ด์ด๋ ์ซ์ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
โก๏ธ ๋ ผ๋ฆฌ์ ์ฐธ, ๊ฑฐ์ง๋ณด๋ค๋ ๋ค์ํ ์ํฉ(case)์ ๋ฐ๋ผ ์คํํ ์ฝ๋ ๋ธ๋ก์ ๊ฒฐ์ ํ ๋ ์ฌ์ฉํ๋ค.
โ ๏ธ ํด์ค๋ฃจ(fall through)
switch ๋ฌธ์ ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ์ผ์นํ๋ case ๋ฌธ์ผ๋ก ์คํ ํ๋ฆ์ ์ด๋ํ์ฌ ๋ฌธ์ ์คํํ ํ,
switch ๋ฌธ์ ํ์ถํ์ง ์๊ณ switch ๋ฌธ์ด ๋๋ ๋๊น์ง ์ดํ์ ๋ชจ๋ case ๋ฌธ๊ณผ default ๋ฌธ์ ์คํํ๋ ๊ฒ.
โก๏ธ ์ด๋ฌํ ๋ฌธ์ ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, break ๋ฌธ์ ์ฌ์ฉํ๋๋ก ํ์.
(default ๋ฌธ์๋ break ๋ฌธ์ ์๋ตํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.)
(๊ฒฝ์ฐ์ ๋ฐ๋ผ break ๋ฌธ์ ์๋ตํ ํด์ค๋ฃจ๊ฐ ์ ์ฉํ ์๋ ์๋ค.)
โญ ๋ง์ฝ if ... else ๋ฌธ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค๋ฉด switch ๋ฌธ๋ณด๋ค if ... else ๋ฌธ์ ์ฌ์ฉํ๋ ํธ์ด ์ข๋ค.
ํ์ง๋ง ์กฐ๊ฑด์ด ๋๋ฌด ๋ง์์ switch ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค๋ฉด switch ๋ฌธ์ ์ฌ์ฉํ๋ ํธ์ด ์ข๋ค!
03. ๋ฐ๋ณต๋ฌธ
์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๊ฒฝ์ฐ ์ฝ๋ ๋ธ๋ก์ ์คํํ๋ฉฐ, ๊ทธ ํ ์กฐ๊ฑด์์ ๋ค์ ํ๊ฐํ์ฌ ์ฌ์ ํ ์ฐธ์ธ ๊ฒฝ์ฐ ์ฝ๋ ๋ธ๋ก์ ๋ค์ ์คํํ๋ค. ์ด๋ ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ผ ๋๊น์ง ๋ฐ๋ณต๋๋ค.
1) for ๋ฌธ
๐ฅ๏ธ ์์ ์ฝ๋
for (๋ณ์ ์ ์ธ๋ฌธ ๋๋ ํ ๋น๋ฌธ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
์กฐ๊ฑด์์ด ์ฐธ์ธ ๊ฒฝ์ฐ ๋ฐ๋ณต ์คํ๋ ๋ฌธ;
}
๊ตฌ์ฒด์ ์ธ ์์๋ฅผ ํตํด ์ดํด๋ณด์.
๐ฅ๏ธ ์์ ์ฝ๋
for (var i = 0; i < 2; i++) {
console.log(i);
}
0
1
2) while ๋ฌธ
- for ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ช ํํ ๋ ์ฃผ๋ก ์ฌ์ฉ
- while ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ถ๋ช ํํ ๋ ์ฃผ๋ก ์ฌ์ฉ
๐ฅ๏ธ ์์ ์ฝ๋
var count = 0;
// count๊ฐ 3๋ณด๋ค ์์ ๋๊น์ง ์ฝ๋ ๋ธ๋ก์ ๊ณ์ ๋ฐ๋ณต ์คํํ๋ค.
while (count < 3) {
console.log(count); // 0 1 2
count++;
}
๐ก ๋ฌดํ๋ฃจํ์์ ํ์ถํ๊ธฐ
์ฝ๋ ๋ธ๋ก ๋ด์ if ๋ฌธ์ผ๋ก ํ์ถ ์กฐ๊ฑด์ ๋ง๋ค๊ณ break ๋ฌธ์ผ๋ก ์ฝ๋ ๋ธ๋ก์ ํ์ถํ๋ค.
๐ฅ๏ธ ์์ ์ฝ๋
var count = 0;
// ๋ฌดํ๋ฃจํ
while (true) {
console.log(count);
count++;
// count๊ฐ 3์ด๋ฉด ์ฝ๋ ๋ธ๋ก์ ํ์ถํ๋ค.
if (count === 3) break;
} // 0 1 2
3) do ... while ๋ฌธ
์ฝ๋ ๋ธ๋ก์ ๋จผ์ ์คํํ๊ณ ์กฐ๊ฑด์์ ํ๊ฐํ๋ค.
๐ฅ๏ธ ์์ ์ฝ๋
var count = 0;
// count๊ฐ 3๋ณด๋ค ์์ ๋๊น์ง ์ฝ๋ ๋ธ๋ก์ ๊ณ์ ๋ฐ๋ณต ์คํํ๋ค.
do {
console.log(count); // 0 1 2
count++;
} while (count < 3);
04. break ๋ฌธ
๋ ์ด๋ธ ๋ฌธ, ๋ฐ๋ณต๋ฌธ ๋๋ switch ๋ฌธ์ ์ฝ๋ ๋ธ๋ก์ ํ์ถํ๋ค.
05. continue ๋ฌธ
๋ฐ๋ณต๋ฌธ์ ์ฝ๋ ๋ธ๋ก ์คํ์ ํ ์์ ์์ ์ค๋จํ๊ณ ๋ฐ๋ณต๋ฌธ์ ์ฆ๊ฐ์์ผ๋ก ์คํ ํ๋ฆ์ ์ด๋์ํจ๋ค.
โ ๏ธ break ๋ฌธ์ฒ๋ผ ๋ฐ๋ณต๋ฌธ์ ํ์ถํ์ง๋ ์๋๋ค!
๐ ์ฐธ๊ณ ์๋ฃ
[๋ฌด๋ฃ] ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ๋ค์ด๋ธ ์คํฐ๋ - ์ธํ๋ฐ | ๊ฐ์
ใ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ๋ค์ด๋ธใ ์ฑ ๋ด์ฉ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ ์คํฐ๋ ์์์ ๋๋ค. ํจ๊ป ๊ณต๋ถํ๋ฉด ํจ์ฌ ์ฌ์์ง ๊ฑฐ์์!, - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ
www.inflearn.com