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

JiYoung Dev ๐Ÿ–ฅ

[์ž๋ฐ”] ๋ฐ˜๋ณต๋ฌธ for / while / do - while ๋ณธ๋ฌธ

full stack/JAVA

[์ž๋ฐ”] ๋ฐ˜๋ณต๋ฌธ for / while / do - while

Shinjio 2023. 2. 21. 14:41

Java Pre-Training - 2023.02.21 ํ•™์Šต๋‚ด์šฉ

 

์ฐธ๊ณ ์ž๋ฃŒ

 

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

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

tcpschool.com

 

์ง€๋‚œ ์‹œ๊ฐ„์—์„œ ์ œ์–ด๋ฌธ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์˜ ์ˆœ์„œ(ํ๋ฆ„)๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋ผ๊ณ  ํ•˜์˜€์Œ

์ž๋ฐ”์—์„œ ์ œ์–ด๋ฌธ์œผ๋กœ๋Š” ํฌ๊ฒŒ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์ด ์žˆ์Œ

 

๐Ÿ”Ž ๋ฐ˜๋ณต๋ฌธ(iteration statements)

๋ฐ˜๋ณต๋ฌธ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋˜‘๊ฐ™์€ ๋ช…๋ น์„ ์ผ์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ œ์–ดํ•˜๋Š” ๋ช…๋ น๋ฌธ

์–ด๋–ค ์กฐ๊ฑด์— ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋ฌธ์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ

ํ”„๋กœ๊ทธ๋žจ์ด ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋Š” ๋ฐ˜๋ณต์ ์ธ ํ˜•ํƒœ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ œ์–ด๋ฌธ ์ค‘ ํ•˜๋‚˜

 

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” โ‘ ์ฝ”๋“œ์˜ ๊ฐ„์†Œํ™”, โ‘กํŠน์ •ํ•œ ๋ช…๋ น์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ์ž‘์—…์„ ์ค„์ด๊ธฐ ์œ„ํ•จ

 

์ž๋ฐ”์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐ˜๋ณต๋ฌธ
1. for ๋ฌธ
2. while ๋ฌธ
3. do / while ๋ฌธ
4. Enhanced for ๋ฌธ

 

๐Ÿ“– for๋ฌธ

์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ

์•„๋ž˜ ๋ฌธ๋ฒ•์—์„œ ์กฐ๊ฑด์‹์ด ์ฐธ(true)์ผ ๋™์•ˆ์—๋Š” ๋ช…๋ น๋ฌธ์„ ๊ณ„์† ๋ฐ˜๋ณต

 

๋ฌธ๋ฒ•
for (์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

 

โ–ผโ–ผโ–ผ for ๋ฌธ ์‚ฌ์šฉ ์ฝ”๋“œ โ–ผโ–ผโ–ผ

 

for ๋ฌธ์ด ์‹คํ–‰๋˜๋Š” ๊ณผ์ •

1. ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ : i = 1

2. ์กฐ๊ฑด์‹ : (i == 1) <= 10 → true
3. ์‹คํ–‰๋ฌธ : i ์ถœ๋ ฅ → 1
4. ๋ฐ˜๋ณต ํ›„ ์ž‘์—… : i++ → i == 2

↓ ↓ 

2. ์กฐ๊ฑด์‹ : (i == 2) <= 10 → true
3. ์‹คํ–‰๋ฌธ : i ์ถœ๋ ฅ → 2
4. ๋ฐ˜๋ณต ํ›„ ์ž‘์—… : i++ → i == 3

↓ ↓ 

...

↓ ↓ 

2. ์กฐ๊ฑด์‹ : (i == 10) <= 10 → true
3. ์‹คํ–‰๋ฌธ : i ์ถœ๋ ฅ → 10
4. ๋ฐ˜๋ณต ํ›„ ์ž‘์—… : i++ → i == 11

↓ ↓ 

2. ์กฐ๊ฑด์‹ : (i == 11) <= 10 → false
for ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ

 

์ด๋•Œ for ๋ฌธ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์€ ๊ฐ๊ฐ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ

 

โ–ผโ–ผโ–ผ for ๋ฌธ ์‚ฌ์šฉ ์ฝ”๋“œ ์˜ˆ โ–ผโ–ผโ–ผ

 

๐Ÿ“– while๋ฌธ

์ฃผ๋กœ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ

๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„ ๊ฒฝ์šฐ์—๋Š” for ๋ฌธ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๋” ์ง๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

 

๋ฌธ๋ฒ•
while (์กฐ๊ฑด์‹) {
    ์‹คํ–‰๋ฌธ์žฅ;
    // ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๊ฐ€ true์ผ ๋™์•ˆ ์‹คํ–‰๋จ
}

 

โ–ผโ–ผโ–ผ while ๋ฌธ ์‚ฌ์šฉ ์ฝ”๋“œ โ–ผโ–ผโ–ผ

 

while ๋ฌธ ๋‚ด๋ถ€์— ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น๋ฌธ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์˜์›ํžˆ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋จ 

์œ„์˜ ์ฝ”๋“œ์—์„œ i++์— ํ•ด๋‹น → ์ด ์‹์ด ์—†๋‹ค๋ฉด i๋Š” ๊ณ„์† 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฏ€๋กœ 1์„ ๊ณ„์† ์ถœ๋ ฅํ•˜๊ฒŒ ๋จ

 

์ด๋ฅผ ๋ฌดํ•œ ๋ฃจํ”„(infinite loop)์— ๋น ์กŒ๋‹ค๊ณ  ํ•˜๋ฉฐ, ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง„ ํ”„๋กœ๊ทธ๋žจ์€ ์˜์›ํžˆ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Œ

๋ฌดํ•œ ๋ฃจํ”„๋Š” ํŠน๋ณ„ํžˆ ์˜๋„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ํ”ผํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ

๋”ฐ๋ผ์„œ while ๋ฌธ์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋Š ์ˆœ๊ฐ„ ๊ฑฐ์ง“(false)์„ ๊ฐ–๋„๋ก ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น๋ฌธ์„ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•ด์•ผ ํ•จ

 

โ–ผโ–ผโ–ผ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ์˜ while ๋ฌธ ์‚ฌ์šฉ ์ฝ”๋“œ โ–ผโ–ผโ–ผ

 

๐Ÿ“– do / while ๋ฌธ

while ๋ฌธ์€ ๋ฃจํ”„์— ์ง„์ž…ํ•˜๊ธฐ ์ „์— ๋จผ์ € ์กฐ๊ฑด์‹๋ถ€ํ„ฐ ๊ฒ€์‚ฌํ•จ

ํ•˜์ง€๋งŒ do / while ๋ฌธ์€ ๋จผ์ € ๋ฃจํ”„๋ฅผ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•œ ํ›„์— ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌ

์ฆ‰, do / while ๋ฌธ์€ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ๋ฃจํ”„๋ฅผ ์‹คํ–‰

 

๋ฌธ๋ฒ•
do {
      ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
} while (์กฐ๊ฑด์‹);

 

๐Ÿ“– Enhanced for ๋ฌธ

JDK 1.5๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ฐฐ์—ด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ˜๋ณต๋ฌธ