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

JiYoung Dev ๐Ÿ–ฅ

[JAVA] ์กฐ๊ฑด๋ฌธ (2023.03.23 ์ˆ˜์—…) ๋ณธ๋ฌธ

full stack/JAVA

[JAVA] ์กฐ๊ฑด๋ฌธ (2023.03.23 ์ˆ˜์—…)

Shinjio 2023. 3. 23. 19:06

2023.03.23 ํ•™์Šต ๋‚ด์šฉ

๐Ÿ”Ž ์กฐ๊ฑด๋ฌธ

์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋น„๊ต/ํŒ๋‹จํ•˜์—ฌ ๊ทธ ์กฐ๊ฑด์— ๋งŒ์กฑํ•  ๊ฒฝ์šฐ ์ง€์ •๋œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ๋งŒ์กฑํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„์˜ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ตฌ๋ฌธ (์กฐ๊ฑด์ด ์ค‘์š”!!)

 

if๋ฌธ ์ˆœ์„œ๋„

 

๐Ÿ“– ์ˆœ์„œ๋„(flowchart) → ์ง์ ‘ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

๊ด€๋ จ์ž๋ฃŒ 

 

์ฝ”๋”ฉ๊ต์œก ํ‹ฐ์”จํ”ผ์Šค์ฟจ

4์ฐจ์‚ฐ์—…ํ˜๋ช…, ์ฝ”๋”ฉ๊ต์œก, ์†Œํ”„ํŠธ์›จ์–ด๊ต์œก, ์ฝ”๋”ฉ๊ธฐ์ดˆ, SW์ฝ”๋”ฉ, ๊ธฐ์ดˆ์ฝ”๋”ฉ๋ถ€ํ„ฐ ์ž๋ฐ” ํŒŒ์ด์ฌ ๋“ฑ

tcpschool.com

 

๐Ÿ“– ์กฐ๊ฑด๋ฌธ์˜ ์ข…๋ฅ˜

๋‹จ์ˆœif๋ฌธ

if ~ else๋ฌธ

๋‹ค์ค‘ if ~ else๋ฌธ

switch๋ฌธ

 

โš™ ๋‹จ์ˆœif๋ฌธ

if๋ฌธ์˜ ์กฐ๊ฑด์ด ์ฐธ(true)์ด๋ฉด if๋ฌธ ๋‚ด๋ถ€์˜ '์‹คํ–‰๋ฌธ์žฅ'์ด ์‹คํ–‰๋˜๋ฉฐ ๊ฑฐ์ง“(false)์ด๋ฉด if๋ฌธ์„ ๋ฒ—์–ด๋‚จ

๋‹จ์ˆœif๋ฌธ์—์„œ ๋ฌผ์–ด๋ณด๋Š” ์กฐ๊ฑด์€ ๋‹จ 1๊ฐœ. ์กฐ๊ฑด์€ ํ•ญ์ƒ ๋…ผ๋ฆฌํ˜•(๋น„๊ต์—ฐ์‚ฐ์ž ํ˜น์€ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž)

๋น„๊ต์—ฐ์‚ฐ์ž : ๋ถ€๋“ฑํ˜ธ ์—ฐ์‚ฐ, ๊ฐ™๋‹ค/๋‹ค๋ฅด๋‹ค ์—ฐ์‚ฐ

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž : NOT, AND, OR ์—ฐ์‚ฐ์ž

 

ex. ์ •์ˆ˜ n1๊ณผ ์ •์ˆ˜ n2๊ฐ€ 0๋ณด๋‹ค ํฐ์ง€ ํŒ๋ณ„ (๋ชจ๋‘ 0๋ณด๋‹ค ํด ๊ฒฝ์šฐ "0๋ณด๋‹คํฌ๋‹ค!"๋ฅผ ์ถœ๋ ฅ)

int n1 = 20;

int n2 = -20;

if ((n1 > 0) && (n2 > 0)) {  // ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

    System.out.println("0๋ณด๋‹คํฌ๋‹ค!")

}

๋‹ค์Œ๋ฌธ์žฅ

 

if(์กฐ๊ฑด์‹) {
    ์‹คํ–‰๋ฌธ์žฅ
}
๋‹ค์Œ๋ฌธ์žฅ

์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์‹คํ–‰๋ฌธ์ž ์‹คํ–‰ ํ›„ ๋‹ค์Œ๋ฌธ์žฅ ์‹คํ–‰๋จ
์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด๋ฉด ๋‹ค์Œ๋ฌธ์žฅ์ด ๋ฐ”๋กœ ์‹คํ–‰๋จ

 

Dead Code 

์‹คํ–‰์ด ๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ

if๋ฌธ ์กฐ๊ฑด ๋‚ด์— false๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ ˆ๋Œ€ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ dead code๊ฐ€ ๋จ

 

 

โš™ if ~ else๋ฌธ

if์˜ ์กฐ๊ฑด์‹์ด ์ฐธ์ธ ๊ฒฝ์šฐ์™€ ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ์— ๊ฐ๊ฐ ์‹คํ–‰ํ•  ๋ฌธ์žฅ์„ ์ง€์‹œ

if๋ฌธ์˜ ์กฐ๊ฑด์‹์ด ์ฐธ(true)์ด๋ฉด if๋ฌธ ๋‚ด๋ถ€์˜ '์‹คํ–‰๋ฌธ์žฅ'์ด ์‹คํ–‰๋˜๋ฉฐ ๊ฑฐ์ง“(false)์ด๋ฉด else๋ฌธ ๋‚ด๋ถ€์˜ '์‹คํ–‰๋ฌธ์žฅ'์„ ์‹คํ–‰

→ ์กฐ๊ฑด์€ 1๊ฐœ

if(์กฐ๊ฑด์‹) {
    ์‹คํ–‰๋ฌธ์žฅ1
}else{
    ์‹คํ–‰๋ฌธ์žฅ2
}
๋‹ค์Œ๋ฌธ์žฅ

์กฐ๊ฑด์‹์ด true์ด๋ฉด ์‹คํ–‰๋ฌธ์žฅ1์„ ์‹คํ–‰ํ•œ ํ›„ if-else๋ฌธ์„ ๋ฒ—์–ด๋‚˜๊ณ , false์ด๋ฉด ์‹คํ–‰๋ฌธ์žฅ2๋ฅผ ์‹คํ–‰ํ•œ ํ›„ if-else๋ฌธ์„ ๋ฒ—์–ด๋‚จ

 

 

 

โ–ผ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ → ์ฝ”๋“œ ๋‚ด ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์žฅ์ด ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜์ •ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค

 

โ–ผ ์Œค ํ’€์ด (์กฐ๊ฑด๋ฌธ ์•ˆ์— ํ•ฉ๊ฒฉ ์กฐ๊ฑด ๋ชจ๋‘ ์ž‘์„ฑ)

 

โš™ ๋‹ค์ค‘ if ~ else๋ฌธ

if ~ else๋ฌธ์ด ์—ฐ์†๋˜๋Š” ๋ชจ์–‘

์กฐ๊ฑด์€ n๊ฐœ (2๊ฐœ ์ด์ƒ)

์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋Š”(true) ์กฐ๊ฑด์„ ๋งŒ๋‚˜๋ฉด ๋” ์ด์ƒ ์กฐ๊ฑด์„ ํ™•์ธํ•˜์ง€ ์•Š์Œ

 

if(์กฐ๊ฑด์‹1){
    ์‹คํ–‰๋ฌธ์žฅ1
} else if(์กฐ๊ฑด์‹n){
       ์‹คํ–‰๋ฌธ์žฅn
}else{
        ์‹คํ–‰๋ฌธ์žฅn+1
}
๋‹ค์Œ๋ฌธ์žฅ

์กฐ๊ฑด์ด false์ผ ๋•Œ ๊ณ„์† ํ™•์ธํ•˜๊ณ  true๋ฅผ ๋งŒ๋‚˜๋Š” ์ˆœ๊ฐ„ if๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ

 

๋‹ค์ค‘ if~else๋ฌธ ์ž‘์„ฑ ํŒ

โ‘  ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์ญ‰ ์ž‘์„ฑ 

โ‘ก ์ค‘๋ณต๋˜๋Š” ์งˆ๋ฌธ์€ ์‚ญ์ œํ•˜๊ธฐ

โ‘ข ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์„ ๊ผญ ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์ธ ํ›„ ๊ผญ ํ•ด์•ผ ํ•˜๋ฉด if else๋กœ ์•„๋‹ˆ๋ฉด else๋กœ ์ž‘์„ฑ

 

 

String ๋ฌธ์ž์—ด ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•

== ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธํƒ€์ž…(primitive) ํƒ€์ž…์ผ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ๋”ฐ๋ผ์„œ String๋ผ๋ฆฌ ๋น„๊ตํ•  ๋•Œ์—๋Š” .equals ์‚ฌ์šฉ

equals๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ true ํ˜น์€ false์ธ boolean์œผ๋กœ ๋ฐ˜ํ™˜ → ๋”ฐ๋ผ์„œ if๋ฌธ์˜ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

'equals'์™€ '=='์˜ ์ฐจ์ด์ 

๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๋‘˜์€ ๋ชจ๋‘ ์–‘์ชฝ์— ์žˆ๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ boolean ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ์Œ

์ฐจ์ด์ 
equals๋Š” ๋ฉ”์†Œ๋“œ, ==๋Š” ๋น„๊ต๋ฅผ ์œ„ํ•œ ์—ฐ์‚ฐ์ž
equals๋Š” ๋ชจ๋“  ๊ฐ์ฒด์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์ธ Object์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์˜ ๋‚ด์šฉ ์ž์ฒด๋ฅผ ๋น„๊ต
== ์—ฐ์‚ฐ์ž๋Š” ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ต
โ€ป ์ฃผ์†Œ๊ฐ’ : ๋Œ€์ƒ์„ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๊ฐ’

์ž์„ธํ•œ ๋‚ด์šฉ์€ https://kmj1107.tistory.com/207 ์ฐธ์กฐ

 

 

๐Ÿ“– ๋‹ค์ค‘if~else๋ฌธ vs ๋‹จ์ˆœ if๋ฌธ

๋‹จ์ˆœ if๋ฌธ์€ if์— ์žˆ๋Š” ์กฐ๊ฑด์€ ๋ฌด์กฐ๊ฑด ํ™•์ธ

๋‹ค์ค‘if~else๋Š” ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋ฉด if๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ. ์กฐ๊ฑด์„ ํ™•์ธ ํ›„ ์กฐ๊ฑด์ด false์ธ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ ์กฐ๊ฑด์„ ํ™•์ธ

 

if ~ else if๋ฌธ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ

 

if๋ฌธ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ

 

์ค‘์ฒฉ if-else๋ฌธ

if๋ฌธ์ด๋‚˜ if-else๋ฌธ, else ๋ฌธ์˜ '์‹คํ–‰ ๋ฌธ์žฅ'์— , if ๋ฌธ์ด๋‚˜ if-else ๋ฌธ์„ ๋‚ดํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿ“– switch๋ฌธ

๊ฐ’์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ฐฉํ–ฅ์œผ๋กœ ๋ถ„๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ(์ด๋•Œ๋Š” if๋ฌธ๋ณด๋‹ค ๊ฐ€๋…์„ฑ์ด ์ข‹์Œ)

'์‹'์„ ๊ณ„์‚ฐํ•œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” case๋กœ ๋ถ„๊ธฐ

 

 

์‹์—๋Š” ํŠน์ •ํ•œ ๊ฐ’ ํ˜น์€ ์—ฐ์‚ฐ์‹์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

if๋ฌธ์—์„œ ์กฐ๊ฑด์—๋Š” ์ฐธ ๊ฑฐ์ง“์œผ๋กœ๋งŒ ๋‚˜์™€์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ต๋จ

 

switch๋Š” case์™€ ํ•ญ์ƒ ํ•จ๊ป˜ ์“ฐ์ž„

๊ฐ’์—๋Š” ์‹๊ณผ ๋น„๊ตํ•  ์‹ค์ œ ๊ฐ’

case ๋ฌธ์˜ ๊ฐ’์€ ์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด, ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด, ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋งŒ ํ—ˆ์šฉ (๋ณ€์ˆ˜๋‚˜ ์‹์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ)

 

break : ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๋Š” ํ‚ค์›Œ๋“œ

switch๋Š” break๋ฅผ ๊ฑธ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋‚˜๊ฐ€์ง€ ์•Š์Œ → ์‹๊ณผ ๊ฐ’์˜ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ผ์น˜ํ•  ๊ฒฝ์šฐ break๋ฌธ์„ ๋งŒ๋‚ ๋•Œ๊นŒ์ง€ ์‹คํ–‰

 

default 

if๋ฌธ์˜ else์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ. case๋ฅผ ์ „๋ถ€ ํ™•์ธํ–ˆ๋”๋‹ˆ ๋ถˆ๋งŒ์กฑํ–ˆ์„ ๋•Œ default๋ฅผ ์‹คํ–‰

๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์˜ค๊ธฐ ๋•Œ๋ฌธ์— break๊ฐ€ ํ•„์š” ์—†์Œ

 

 

break๋ฅผ ์“ฐ์ง€ ์•Š์•˜์„ ๋•Œ

๋งŒ์ผ case ๋ฌธ์— break ๋ฌธ์ด ์—†๋‹ค๋ฉด break ๋ฌธ์„ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์•„๋ž˜์˜ case ๋ฌธ์˜ '์‹คํ–‰ ๋ฌธ์žฅ'์œผ๋กœ ๊ณ„์† ์‹คํ–‰ํ•จ.

break๋ฅผ ๋งŒ๋‚˜์ง€ ์•Š์œผ๋ฉด 20์„ ์ถœ๋ ฅํ•œ ํ›„ case๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ์‹คํ–‰๋จ. 

case๋Š” ๋น„๊ตํ•˜๋Š” ๊ตฌ๋ฌธ์ด ์•„๋‹ˆ๋‹ค. 

(30๊ณผ ๋น„๊ตํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ถœ๋ ฅ)

 

 

break๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ค„์ด๊ธฐ

์ž๋ฐ”15 ์ด์ƒ๋ถ€ํ„ฐ๋Š” case 1,2,12 ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•จ

 

 

โ€ป ์กฐ๊ฑด์ด 2~3๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” if๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์กฐ๊ฑด์ด ๊ทธ ์ด์ƒ์ธ ๊ฒฝ์šฐ switch๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•จ. 

โ–ผ์ด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ

 

quiz.

๋‚ด ํ’€์ด

 

chatGPT ํ’€์ด : switch case๋ฅผ ๊ฐ€๊ฒฉ์„ ๋ณ€๋™ํ•˜๋„๋ก ์ง€์ •

 

๋‹ค๋ฅธ ์กฐ์—์„œ๋Š” case๋ฌธ์—์„œ ์ž”์•ก ๋ณ€๊ฒฝ

case 1 : 

      money -= 1800; ์ด๋Ÿฐ์‹์œผ๋กœ