๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ƒ์ˆ˜ / ์ œ์–ด๋ฌธ(if, else if, switch, for, while, break, continue) ๋ณธ๋ฌธ

full stack/JavaScript

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ƒ์ˆ˜ / ์ œ์–ด๋ฌธ(if, else if, switch, for, while, break, continue)

Shinjio 2023. 2. 17. 21:47

์ƒ์ˆ˜(constant)

๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋• let ๋Œ€์‹  const ์‚ฌ์šฉ

const๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ '์ƒ์ˆ˜(constant)'๋ผ๊ณ  ํ•จ

์ƒ์ˆ˜๋Š” ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ƒ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ

 

์ƒ์ˆ˜ ๋ณ€๊ฒฝ ์‹œ ์—๋Ÿฌ ๋ฐœํ–‰

 

์ƒ์ˆ˜๋Š” ๋Œ€๋ฌธ์ž์™€ ๋ฐ‘์ค„๋กœ ๊ตฌ์„ฑ๋œ ์ด๋ฆ„์œผ๋กœ ๋ช…๋ช…

 

์ƒ์ˆ˜ ์‚ฌ์šฉ ์˜ˆ

 

์ œ์–ด๋ฌธ

if๋ฌธ

 

if๋ฌธ

 

else๋ฌธ์€ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉ

else ๋’ค์— ์ด์–ด์ง€๋Š” ์ฝ”๋“œ ๋ธ”๋ก์€ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰๋จ

๋งŒ์•ฝ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๊ณ , else๋ฌธ์„ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ฝ˜์†”์— ์•„๋ฌด๊ฒƒ๋„ ํ‘œ๊ธฐ๋˜์ง€ ์•Š์Œ

 

else if๋กœ ๋ณต์ˆ˜ ์กฐ๊ฑด ์ฒ˜๋ฆฌํ•˜๊ธฐ

 

if๋ฌธ ์ค‘๋ณต์‚ฌ์šฉ vs else if ์‚ฌ์šฉ ๋น„๊ต

 

๋ฌธ์ œํ’€์ด

 

๋ฌธ์ œํ’€์ด ์ฝ”๋“œ ์ž‘์„ฑ

 

point 1. ์ฒ˜์Œ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ return ๋Œ€์‹  console.log() ์‚ฌ์šฉ. ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์— undefined ์ถœ๋ ฅ๋จ. result์— ๋ฐ˜ํ™˜๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š”๋ฐ console.log๊ฐ€ ๋“ค์–ด๊ฐ€ 34๋ฒˆ ํ–‰์˜ console.log์— ๋Œ€ํ•œ ์‹คํ–‰ ๊ฐ’์ด ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— undefined ์ถœ๋ ฅ. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ์ž‘์„ฑ์‹œ return ์‚ฌ์šฉํ•ด์•ผ ํ•จ.

 

๋ฌธ์ œํ’€์ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

 

switch๋ฌธ

๋ณต์ˆ˜์˜ if ์กฐ๊ฑด๋ฌธ์€ switch๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ. switch๋ฌธ์„ ์‚ฌ์šฉํ•œ ๋น„๊ต๋ฒ•์€ ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ. ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋น„๊ต ์ƒํ™ฉ์„ ์ž˜ ์„ค๋ช…ํ•œ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ์Œ

 

switch(x) {
  case 'value1':             // if (x === 'value1')
     ๋™์ž‘๋ฌธ;
     break;
  case 'value2':            // if (x === 'value2')
     ๋™์ž‘๋ฌธ;
     break;
  default:
     ๋™์ž‘๋ฌธ;
     break;
}

 

๋ณ€์ˆ˜ x์˜ ๊ฐ’๊ณผ ์ฒซ๋ฒˆ์งธ case๋ฌธ์˜ ๊ฐ’ 'value1'์„ ๋น„๊ตํ•˜์—ฌ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น case ๋ฌธ์˜ ์•„๋ž˜์— ์ž‘์„ฑ๋œ ๋™์ž‘๋ฌธ์„ ์ˆ˜ํ–‰.

์ด๋•Œ, break๋ฌธ์„ ๋งŒ๋‚˜๊ฑฐ๋‚˜ switch ๋ฌธ์ด ๋๋‚˜๋ฉด ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ๋ฉˆ์ถค. ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” case ๋ฌธ์ด ์—†๋‹ค๋ฉด default ๋ฌธ ์•„๋ž˜์˜ ๋™์ž‘๋ฌธ์ด ์‹คํ–‰. ๋งŒ์•ฝ break๋ฌธ์ด ์—†๋‹ค๋ฉด ์กฐ๊ฑด์— ์ƒ๊ด€์—†์ด ๋‹ค์Œ case ๋ฌธ์ด ์‹คํ–‰๋จ.

์˜ˆ๋ฅผ ๋“ค์–ด x === value1๊ณผ ์ผ์น˜ํ•  ๊ฒฝ์šฐ break๋ฌธ์ด ์—†๋‹ค๋ฉด case 'value1~2', default๊นŒ์ง€์˜ ๋™์ž‘๋ฌธ์ด ๋ชจ๋‘ ์‹คํ–‰๋จ

 

let a = 3;

switch (a) {
  case 4:
    alert('๊ณ„์‚ฐ์ด ๋งž์Šต๋‹ˆ๋‹ค!');
    break;

  case 3:
  case 5:       // 2๊ฐ€์ง€ ์ผ€์ด์Šค์—์„œ ์‹คํ–‰ํ•˜๋ ค๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    alert('๊ณ„์‚ฐ์ด ํ‹€๋ฆฝ๋‹ˆ๋‹ค!');
    break;
}

 

switch ์‚ฌ์šฉ ์˜ˆ

 

if๋ฌธ๊ณผ switch๋ฌธ ๋ชจ๋‘ ํŠน์ •ํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์–ด๋–ค ๋„“์€ ๋ฒ”์œ„๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์‹์„ ๋งŒ๋“ค๋•Œ๋Š” if๋ฌธ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข€ ๋” ํšจ๊ณผ์ ์ด๊ณ  ํŠน์ •ํ•œ ๊ฐ’์— ์ผ์น˜ํ•˜๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค ๋•Œ๋Š” switch๋ฌธ์ด ์ข€ ๋” ํšจ๊ณผ์ ์ž„

 

๋˜ํ•œ, switch๋ฌธ์€ ๊ฐ’๋“ค์„ ๋น„๊ตํ•  ๋•Œ ์ž๋ฃŒํ˜•์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋ฉฐ, if๋ฌธ์œผ๋กœ ๋Œ€์ฒดํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ๋“ฑํ˜ธ 3๊ฐœ๋กœ ์ผ์น˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•จ. ์ฆ‰, switch๋ฌธ์€ ๋น„๊ตํ•˜๋ ค๋Š” ๊ฐ’๊ณผ case๋ฌธ์˜ ๊ฐ’์˜ ํ˜•๊ณผ ๊ฐ’์ด ๊ฐ™์•„์•ผ ์‹คํ–‰

 

for ๋ฐ˜๋ณต๋ฌธ

 

for ๋ฐ˜๋ณต๋ฌธ

 

for๋ฌธ Tip.

 

1. ์ถ”๊ฐ€๋™์ž‘๋ถ€๋ถ„์„ ๊ผญ ์ฑ„์šธ ํ•„์š”๋Š” ์—†๋‹ค.

๋™์ž‘๋ถ€๋ถ„์—์„œ ๋ฐ˜๋ณตํšŸ์ˆ˜(i)๋ฅผ ์ฆ๋ถ„์‹œ์ผœ๋„ ์ƒ๊ด€์—†์Œ. ๊ทธ๋Ÿฌ๋‚˜ for๋ฌธ์˜ ํŠน์„ฑ์ƒ, ์ด ์ถ”๊ฐ€๋™์ž‘๋ถ€๋ถ„์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘๋ถ€๋ถ„์—์„œ๋Š” ์‹ค์ œ๋กœ ๋ฐ˜๋ณตํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ๋“ค์—๋งŒ ์ง‘์ค‘ํ•˜์—ฌ ์ข€ ๋” ๋ชฉ์ ์— ๋งž๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ

 

์ถ”๊ฐ€๋™์ž‘๋ถ€๋ถ„ ์ƒ๋žต

 

2. ์ดˆ๊ธฐํ™”๋ถ€๋ถ„์—์„œ ์ƒ์„ฑํ•œ ๋ณ€์ˆ˜๋Š” for๋ฌธ์˜ ๋กœ์ปฌ๋ณ€์ˆ˜์ด๋‹ค. 

์ดˆ๊ธฐํ™”๋ถ€๋ถ„์—์„œ ์ƒ์„ฑํ•œ ๋ณ€์ˆ˜๋Š” for๋ฌธ ์•ˆ์—์„œ ์ƒ์„ฑํ•œ ๋กœ์ปฌ๋ณ€์ˆ˜์ด๋ฏ€๋กœ for ๋ฐ˜๋ณต๋ฌธ์ด ์ข…๋ฃŒ๋˜๊ณ  ๋‚˜์„œ for ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ

 

3. ์ดˆ๊ธฐํ™” ๋ถ€๋ถ„๋„ ๋ฐ˜๋“œ์‹œ ์ฑ„์šธ ํ•„์š”๋Š” ์—†๋‹ค.

๋‹จ, ์†Œ๊ด„ํ˜ธ ์•ˆ์ชฝ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์„ธ๋ฏธ์ฝœ๋ก  ; ์€ ์ƒ๋žตํ•  ์ˆ˜ ์—†๋‹ค. 

 

์ดˆ๊ธฐํ™” ๋ถ€๋ถ„ ์ƒ๋žต

 

๋ฌธ์ œํ’€์ด. for ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉํ•˜์—ฌ 1์ด์ƒ 100์ดํ•˜์˜ ์ง์ˆ˜ ์ถœ๋ ฅ

 

์ž‘์„ฑ ์ฝ”๋“œ

 

๋ฌธ์ œํ’€์ด. for ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉํ•˜์—ฌ ์‚ผ๊ฐํ˜• ๋ชจ์–‘ ๊ทธ๋ฆฌ๊ธฐ

 

์ž‘์„ฑ ์ฝ”๋“œ

 

while ๋ฐ˜๋ณต๋ฌธ

 

while ๋ฐ˜๋ณต๋ฌธ

 

while ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ์˜ˆ


๋ฐ˜๋ณต๋ฌธ ๋น ์ ธ๋‚˜์˜ค๊ธฐ

๋Œ€๊ฐœ๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์ด falsy๊ฐ€ ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์ด ์ข…๋ฃŒ๋จ

๊ทธ๋Ÿฌ๋‚˜ ํŠน๋ณ„ํ•œ ์ง€์‹œ์ž์ธ break๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ๋•Œ์— ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ

 

๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ

continue ์ง€์‹œ์ž๋Š” break์˜ ๊ฐ€๋ฒผ์šด ๋ฒ„์ „์œผ๋กœ ์กฐ๊ฑด์„ ํ†ต๊ณผํ•  ๋•Œ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ดํ„ฐ๋ ˆ์ด์…˜์„ ๋ฉˆ์ถ”๊ณ  ๋ฐ˜๋ณต๋ฌธ์ด ๋‹ค์Œ ์ดํ„ฐ๋ ˆ์ด์…˜์„ ๊ฐ•์ œ๋กœ ์‹คํ–‰์‹œํ‚ค๋„๋ก ํ•จ. ์ฆ‰, continue๋Š” ํ˜„์žฌ ๋ฐ˜๋ณต์„ ์ข…๋ฃŒ์‹œํ‚ค๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

for (let i = 0; i < 10; i++) {
  if (i % 2 == 0) continue;     // ์ง์ˆ˜์ผ ๋•Œ๋Š” ์•„๋ž˜ alert๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  i++๋กœ ๋„˜์–ด๊ฐ

  alert(i);  // 1, 3, 5, 7, 9๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ถœ๋ ฅ๋จ
}

 

์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ

 

์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ์˜ˆ : ๊ตฌ๊ตฌ๋‹จ

 

๋ฌธ์ œํ’€์ด. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด

 

ํ”ผ๋ณด๋‚˜์น˜์ˆ˜์—ด ๋ฌธ์ œํ’€์ด