Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๋ฐ๋ณต๋ฌธ2 (break, continue, ์ด์ค๋ฃจํ) ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๋ฐ๋ณต๋ฌธ2 (break, continue, ์ด์ค๋ฃจํ)
๋น๋น bibi 2020. 10. 12. 16:52* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
break ์ continue
break๋ "๋ฐ๋ณต๋ฌธ(๋ฃจํ) ํ ๊ฐ"๋ฅผ ๋น ์ ธ๋๊ฐ๋ค.
(๋ฐ๋ณต๋ฌธ์ ์ค๊ฐ์ ๋น ์ ธ๋๊ฐ ๋ break๋ฅผ ์ฌ์ฉํฉ๋๋ค)
๋ฌดํ ๋ฃจํ์ ํจ๊ป ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
(์๋ฅผ ๋ค์ด ์๋ ์ฝ๋ : while(true)์ด๋ฏ๋ก, ์กฐ๊ฑด์ด false๊ฐ ๋ ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌดํ๋ฃจํ์ด๋ค)
var str;
while (true) {
str = prompt("์๋ฌด๊ฑฐ๋ ์
๋ ฅํ์ธ์");
document.write(str + "<br>");
if (str == "q") {
break;
}
}
document.write("Bye~");
์๋ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํด ๋ณด์ธ์.
for(var i = 0; i < 10; i++) {
console.log(i)
if (i == 5) {
break;
}
}
console.log("End");
-> i๊ฐ 0๋ถํฐ 1์ฉ ๋ํด์ง๋ ๊ฑธ ๋ฐ๋ณตํ๋ค๊ฐ, i=5๊ฐ ๋๋ ์๊ฐ '๋ฐ๋ณต๋ฌธ์' ํ์ถํ๋ค.
์ฆ ์ถ๋ ฅ๊ฒฐ๊ณผ๋ 0; 1; 2; 3; 4; 5; End ์ด๋ค.
continue๋ ๋ฐ๋ณต๋ฌธ(๋ฃจํ)์ "์ฒ์์ผ๋ก ๋์๊ฐ๋ค".
(๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋๊ฐ๋ ๊ฒ ์๋!)
- while: ์กฐ๊ฑด์( i < 10 )์ผ๋ก ๋์๊ฐ.
- for: ์ฆ๊ฐ์ ( i++) ์ผ๋ก ๋์๊ฐ.
for(var i = 0;i < 10; i++) {
if (i == 5) {
continue;
}
console.log(i);
}
-> i๊ฐ 0๋ถํฐ ์์ํด 1์ฉ ๋ํด์ง๋ค๊ฐ, i=5๊ฐ ๋๋ฉด (i=5๋ผ๋ ๊ฐ์ ๊ฐ์ง๊ณ ) ์ฆ๊ฐ์(i++)์ผ๋ก ๋๋์๊ฐ.
๋ฐ๋ผ์ ์ถ๋ ฅ๊ฒฐ๊ณผ๋ 0; 1; 2; 3; 4; 6; 7; 8; 9;
(5๋ ์ถ๋ ฅ๋์ง ์๋๋ค. continue๋ฅผ ๋ง๋ ๋ฐ๋ณต๋ฌธ์ ์ฒ์์ผ๋ก ๋์๊ฐ๊ธฐ ๋๋ฌธ์ console.log(i)๋ฅผ ๋ง๋์ง ์์๊ธฐ ๋๋ฌธ.)
์์ ๊ฐ์ ์ฝ๋์ continue -> break๋ก ๋ฐ๊พผ ์๋ ์ฝ๋๋ฅผ ์คํํด ๋ณด๋ฉฐ ๋น๊ตํด๋ณด์.
for(var i = 0;i < 10; i++) {
if (i == 5) {
break;
}
console.log(i);
}
-> i๊ฐ 0๋ถํฐ ์์ํด 1์ฉ ๋ํด์ง๋ค๊ฐ, i=5๊ฐ ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋๊ฐ.
๋ฐ๋ผ์ ์ถ๋ ฅ๊ฒฐ๊ณผ๋ 0; 1; 2; 3; 4;
(5์ 5์ด์์ ์ถ๋ ฅ๋์ง ์๋๋ค. break๋ฅผ ๋ง๋ ๋ฐ๋ณต๋ฌธ์ด ์ข
๋ฃ๋์๊ธฐ ๋๋ฌธ)
๋ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ ์ดํดํ๋์? ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด ๊ฐ๋ฉด์ ์ดํด๋ ๋๊น์ง ํด ๋ด ์๋ค.
์ด์ค ๋ฃจํ (๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉ)
๋ฐ๋ณต๋ฌธ ์์ ๋ฐ๋ณต๋ฌธ์ด ์๋ ๊ฑธ ์ด์ค ๋ฃจํ๋ผ๊ณ ํฉ๋๋ค. ์ข
์ข
์ฌ์ฉํฉ๋๋ค.
3์ค, 4์ค๋ ๊ฐ๋ฅํ์ง๋ง ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 2; j++) {
console.log(i + ", " +j);
}
}
์ ์ด์ค๋ฃจํ์ ๊ฒฐ๊ณผ๋?
(์ด์ค๋ฃจํ ์๋์์)
๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์์ ์์ - ์์ชฝ ๋ฐ๋ณต๋ฌธ ๋ฐ๋ณต, ๋๋๋ฉด ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋์๊ฐ ๋ค์ ์์ - ์์ชฝ ๋ฐ๋ณต๋ฌธ ๋ฐ๋ณต ..
i=0, j=0์ผ๋ก ์์.
i=0์ธ ์ฑ๋ก j๋ ๋ฐ๋ณต๋ฌธ์ ํตํด 2 ๋ฏธ๋ง๊น์ง 1์ฉ ๋ํด์ง(0,0; 0,1;)
j๊ฐ 2๊ฐ ๋๋ฉด j<2๋ฅผ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ด.
๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ๋ i++์ด๋ฏ๋ก i=1์ด ๋๊ณ ,
i=1์ธ ์ฑ๋ก j๋ ๋ฐ๋ณต๋ฌธ์ ํตํด 2 ๋ฏธ๋ง๊น์ง 1์ฉ ๋ํด์ง(1,0; 1,1;)
์ญ์ j๊ฐ 2๊ฐ ๋๋ฉด j<2๋ฅผ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ด.
๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ๋ i++์ด๋ฏ๋ก i=2๊ฐ ๋๊ณ ,
i=2์ธ ์ฑ๋ก j๋ ๋ฐ๋ณต๋ฌธ์ ํตํด 2 ๋ฏธ๋ง๊น์ง 1์ฉ ๋ํด์ง(2,0; 2,1;)
์ญ์ j๊ฐ 2๊ฐ ๋๋ฉด j<2๋ฅผ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ด.
๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์์ i๊ฐ 3์ด ๋๋ฉด i<3์ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ๋ ๋น ์ ธ๋์ค๊ณ ์ข
๋ฃ๋จ.
(์ถ๋ ฅ ๊ฒฐ๊ณผ)
0, 0
0, 1
1, 0
1, 1
2, 0
2, 1
(์๊ฐํด ๋ณด๊ธฐ) ์ด์ค ๋ฃจํ ์ค๊ฐ์ ํ๊บผ๋ฒ์ ๋น ์ ธ๋๊ฐ ์ ์์๊น์? ์๋ ์ฝ๋์ ๊ฒฐ๊ณผ๋?
for (var i = 0; i < 3; i++) { for (var j = 0; j < 5; j++) { console.log("i= " + i+ ", j= " + j); if (j == 2) { break; } } }
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 5; j++) {
console.log("i= " + i+ ", j= " + j);
if (j == 2) {
break;
}
}
}
-> break;๋ ๋ฃจํ๋ฅผ "ํ ๊ฐ" ๋น ์ ธ๋๊ฐ๋ฏ๋ก,
j=2๊ฐ ๋๋ฉด ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋ฐ๋ณตํ๋ค.
์ฆ ์ถ๋ ฅ๊ฒฐ๊ณผ๋ :
0, 0
0, 1
0, 2
1, 0
1, 1
1, 2
2, 0
2, 1
2, 2