(์์ 23.4.29)
์ ์ด๋ฌธ : ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํํ๊ฑฐ๋ ๋ฐ๋ณต ์คํํ ๋ ์ฌ์ฉํ๋ค. (์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ)
์ ์ด๋ฌธ, ํนํ for ๋ฌธ์ ์ดํดํ๋ ๊ฑด ๋งค์ฐ ์ค์.
์ ์ด๋ฌธ์ ์ฝ๋์ ํ๋ฆ์ ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค์ด ๊ฐ๋ ์ฑ์ ํด์น๋ ๋จ์ ์ด ์์.
=> ๊ฐ๋ ์ฑ์ด ์ข์ง ์์ ์ฝ๋๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ์์ธ์ด ๋จ.
๐ฆ 8.1 ๋ธ๋ก๋ฌธ
0๊ฐ ์ด์์ ๋ฌธ์ ์ค๊ดํธ๋ก ๋ฌถ์ ๊ฒ.
์ฝ๋ ๋ธ๋ก ๋๋ ๋ธ๋ก์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ.
ํ๋์ ์คํ๋จ์. ์์ฒด ์ข ๊ฒฐ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฏธ์ฝ๋ก ์๋ถํ.
๐ฆ 8.2 ์กฐ๊ฑด๋ฌธ
์กฐ๊ฑด๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ์ ์ ์ ํจ.
8.2.1 if... else ๋ฌธ
if .. else if.. else
if ๋ฌธ ๋ด์ ์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ ๋์ด์ผ ํจ.
boolean์ด ์๋๋ผ๋ฉด ๊ฐ์ ๋ณํ๋๊ธฐ๋ ํจ.
else if ๋ฌธ๊ณผ else ๋ฌธ์ ์ต์ ์.
์ฝ๋ ๋ธ๋ก ๋ด์ ๋ฌธ์ด ํ๋ -> ์ค๊ดํธ ์๋ต ๊ฐ๋ฅ
๊ฒฝ์ฐ์ ์๊ฐ ์ธ๊ฐ์ง -> ์ผํญ ์ฐ์ฐ์ ๋ฐ๊ฟ์ฐ๊ธฐ ๊ฐ๋ฅํ๋ค.
์ผํญ์ฐ์ฐ์๋ ๊ฐ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ธฐ์ ๋ณ์์ ํ ๋น ํ ์๋ ์๊ณ ,
์ผํญ ์ฐ์ฐ์ ๋ด์ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ธ ์๋ ์๋ค.
์ฌ๋ฌ ์ค์ด ํ์ํ ๊ฒฝ์ฐ if.. else ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์.
8.2.2 switch ๋ฌธ
์ฃผ์ด์ง ํ๊ฐ์์ ํ๊ฐ -> ๊ทธ ๊ฐ๊ณผ ์ผ์นํ๋ ํํ์์ ๊ฐ๋ case ๋ฌธ์ผ๋ก ์คํ ํ๋ฆ์ ์ฎ๊น
case ๋ฌธ์ ์ํฉ์ ์๋ฏธํ๋ ํํ์์ ์ง์ , ์ฝ๋ก ์ผ๋ก ๋ง์นจ.
switch(ํํ์){
case ํํ์1 :
์คํ๋ ๋ฌธ;
break;
case ํํ์2 :
์คํ๋ ๋ฌธ;
break;
default:
์ผ์นํ๋ case๊ฐ ์์ ๋ ์คํ๋ ๋ฌธ;
}
๋ถ๋ฆฌ์ธ ๊ฐ์ธ ๋ ผ๋ฆฌ์ ์ฐธ ๊ฑฐ์ง ๋ณด๋ค๋ ๋ค์ํ ์ํฉ์ ๋ฐ๋ผ ์คํํ ์ฝ๋ ๋ธ๋ก์ ๊ฒฐ์ ํ ๋ ์ฌ์ฉ.
์ผ์นํ๋ case๊ฐ ์๋ค๋ฉด defualt ๋ฌธ์ผ๋ก ์ด๋ํจ.
default ๋ฌธ์ ์ ํ์ฌํญ.
๐ต ํด ์ค๋ฃจ fall through
: ๊ฐ ์คํ๋ ๋ฌธ์ break ์์จ์ฃผ๋ฉด ๋ชจ๋ case ๋ฅผ ์คํํ๋ฉฐ default ๊น์ง ๋ด๋ ค๊ฐ ์๋ ์์.
-> case ๋ฌธ ๋ง์ง๋ง์ break๋ฌธ์ ์์จ์คฌ๊ธฐ ๋๋ฌธ.
default ๋ฌธ์๋ break ๋ฌธ์ ์๋ตํ๋ ๊ฒ์ด ์ผ๋ฐ์ .
ํด์ค๋ฃจ๊ฐ ์ ์ฉํ ๊ฒฝ์ฐ๋ ์กด์ฌํจ.
->์ฌ๋ฌ๊ฐ์ ์กฐ๊ฑด์ ํ๋์ ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. ex) ์ค๋ ์ธ์ง ํ๋จํด์ 2์์ ์ผ์๋ฅผ ๊ณ์ฐ
์กฐ๊ฑด์ด ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ switch ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๐ฆ 8.3 ๋ฐ๋ณต๋ฌธ
์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด๋ฉด ์ฝ๋ ๋ธ๋ก์ ์คํํจ.
์กฐ๊ฑด์์ด ๊ฑฐ์ง์ด ๋ ๋๊น์ง ๋ฐ๋ณต.
8.3.1 for ๋ฌธ
for (let i = 0; i < array.length; i++) {
const element = array[i];
}
for๋ฌธ์ ๋ณ์ ์ ์ธ๋ฌธ, ์กฐ๊ฑด์, ์ฆ๊ฐ์์ ๋ชจ๋ ์ต์ ์ด๋ฏ๋ก ๋ฐ๋์ ์ฌ์ฉํ ํ์๋ ์๋ค.
์ด๋ค ์๋ ์ ์ธํ์ง ์์ผ๋ฉด ๋ฌดํ๋ฃจํ๊ฐ ๋จ.
8.3.2 while ๋ฌธ
์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ๊ฐ ์ฐธ์ด๋ฉด ์ฝ๋๋ธ๋ก์ ๊ณ์ํด์ ๋ฐ๋ณต ์คํํจ.
๐ต for๋ฌธ์ ๋ฐ๋ณตํ์๊ฐ ๋ช ํํ ๋ ์ฌ์ฉํ๊ณ while ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ถ๋ถ๋ช ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
while ๋ฌธ์ ์กฐ๊ฑด์์ด ์ธ์ ๋ ์ฐธ์ด๋ฉด ๋ฌดํ๋ฃจํ๊ฐ ๋๋ฏ๋ก ์ฃผ์
๋ฌดํ๋ฃจํ๋ฅผ ํ์ถํ๊ธฐ ์ํด์ while๋ฌธ ๋ด์ if ๋ฌธ์ผ๋ก ์กฐ๊ฑด์ ๊ฑด ํ break; ๋ฅผ ์จ์ฃผ๋ฉด ๋๋ค.
8.3.3 do whille ๋ฌธ
๋ฌด์กฐ๊ฑด ํ๋ฒ ์ด์ ์คํ ํ, while ๋ฌธ ์คํ.
=> ์ฝ๋๋ฅผ ๋จผ์ ์คํํ ํ, ์กฐ๊ฑด์์ ํ๊ฐํจ
let count = 0;
do{
console.log(count);
count++;
} while(count < 3);
-> count ๊ฐ 3๋ณด๊ฐ ์์ ๋๊น์ง ์ฝ๋ ๋ธ๋ก์ ๋ฐ๋ณต ์คํํจ.
๐ฆ 8.4 break ๋ฌธ
break ๋ฌธ์ ์ฝ๋ ๋ธ๋ก ํ์ถํ๋ ๋ฌธ.
๋ ์ด๋ธ๋ฌธ, ๋ฐ๋ณต๋ฌธ ๋๋ switch ๋ฌธ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ.
๐ต ๋ ์ด๋ธ ๋ฌธ
์๋ณ์๊ฐ ๋ถ์ ๋ฌธ์ ์๋ฏธํจ.
ํ๋ก๊ทธ๋จ์ ์คํ ์์๋ฅผ ์ ์ดํ๋๋ฐ ์ฌ์ฉํจ.
(switch ๋ฌธ์ case ๋ฌธ๊ณผ default ๋ฌธ๋ ๋ ์ด๋ธ ๋ฌธ์.)
foo: console.log('foo');
{break foo; }ํ๋ฉด ํ์ถ๋จ.
๊ทผ๋ฐ ๊ฐ๋ ์ฑ์ด ๋๋น ์ง๊ณ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ ธ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์.
๐ฆ 8.5 Continue ๋ฌธ
๋ฐ๋ณต๋ฌธ์ ์ฝ๋ ๋ธ๋ก ์คํ์ ํ ์์ ์์ ์ค๋จํ๊ณ ,
๋ฐ๋ณต๋ฌธ์ ์ฆ๊ฐ์์ผ๋ก ์คํ ํ๋ฆ์ ์ด๋์ํจ๋ค.
break ๋ฌธ์ฒ๋ผ ํ์ถํ์ง ์์.
for (let i = 0; i < string.length; i++) {
if(string[i] === search) count++;
}
์ด๊ฑฐ๋ ๊ฐ์.
์คํํ ์ฝ๋๊ฐ ํ์ค์ด๋ผ๋ฉด countinue ๋ฌธ์ ์ฌ์ฉํ์ ๋๋ง๋ค ๊ฐํธํ๊ณ ๊ฐ๋ ์ฑ๋ ์ข๋ค.
ํ์ง๋ง if ๋ฌธ ๋ด์์ ์คํํด์ผํ ์ฝ๋๊ฐ ๊ธธ๋ค๋ฉด ๋ค์ฌ์ฐ๊ธฐ๊ฐ ํ ๋จ๊ณ ๋ ๊น์ด์ง๋ฏ๋ก
continue ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค.
'๋ ์ ๋ชฉ๋ก > ๋ชจ๋ฅ๋ค Modern JS Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ชจ๋ฅ๋ค] 01์ฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2023.04.24 |
---|---|
[๋ชจ๋ฅ๋ค] 10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด (0) | 2023.04.10 |
[๋ชจ๋ฅ๋ค] 07์ฅ ๋ฐ์ดํฐ ํ์ (7.5~7.13) (0) | 2023.04.01 |
[๋ชจ๋ฅ๋ค] 07์ฅ ๋ฐ์ดํฐ ํ์ (7.1~7.4) (0) | 2023.03.30 |
[๋ชจ๋ฅ๋ค] 06์ฅ ๋ฐ์ดํฐ ํ์ (0) | 2023.03.28 |