Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ๋ฐ˜๋ณต๋ฌธ2 (break, continue, ์ด์ค‘๋ฃจํ”„) ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] 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