๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JAVA/๊ธฐ๋ณธ ์ด๋ก 

9. ๋ฐ˜๋ณต๋ฌธ - while ๋ฌธ, do while ๋ฌธ

by ๐Ÿณ Laboon 2024. 2. 10.
while ๋ฌธ ์ด๋ž€?

 

while๋ฌธ๋„ for๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ~๋™์•ˆ ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด์ „ ํฌ์ŠคํŠธ์—์„œ for๋ฌธ์—์„œ ~๋™์•ˆ์„ ์˜๋ฏธํ•˜๋Š” ๊ณณ์ด ์กฐ๊ฑด์‹์ด๋ผ๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

while๋ฌธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ '์กฐ๊ฑด์‹' ๋™์•ˆ ๋ฐ˜๋ณต์„ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ๊ธฐ ์œ„ํ•ด์„œ for๋ฌธ์˜ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ๋ณต์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์ดˆ๊ธฐ๊ฐ’),

๋จผ์ €, '์ดˆ๊ธฐ๊ฐ’'์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์€ 0๊ฐœ ์ด์ƒ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์•„๋„ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ด์ฃ .

์ €๋Š” 3๊ฐœ์˜ ๋ณ€์ˆ˜ i, j, cnt๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ํŠน์ • ๊ฐ’์„ ํ• ๋‹น ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์กฐ๊ฑด์‹),

์กฐ๊ฑด๋™์•ˆ for๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด์€ i < j ์ด๋ฏ€๋กœ, (i : 10) < (j : 20) ๋ฅผ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰์—์„œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ ,

์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ for๋ฌธ์€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

โ€ป ์กฐ๊ฑด์‹์€ boolean ๊ฐ’๋งŒ ๋ฉ๋‹ˆ๋‹ค. C++์€ ๋‹ค๋ฆ„.

 

์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฌธ๋ฒ•),

๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰์—์„œ ๋งŒ์กฑํ•œ ๊ฒฝ์šฐ ์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰์„ ํ•ฉ๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰์€ for ๋ฌธ์˜ ์ค‘๊ด„ํ˜ธ { } ๋กœ ๋ฌถ์—ฌ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ํ•  ๋ฌธ๋ฒ•์€ for๋ฌธ์˜ ๊ฐ ์ˆ˜ํ–‰ ํšŸ์ˆ˜์— ๋Œ€ํ•œ i์™€ j๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฌธ๋ฒ•์ด ๋๋‚˜๋ฉด ๋„ค ๋ฒˆ์งธ ์ˆ˜ํ–‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

๋„ค ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์ฆ๊ฐ์‹),

์‚ฌ๋žŒ๋“ค์ด ๋ง์„ ์ฆ๊ฐ์‹์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด์ง€ ์‚ฌ์‹ค์€ ๋‹ค์Œ ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

์ฆ‰ ๋ฌธ๋ฒ•์—์„œ ๋งˆ์ง€๋ง‰ ์ค„์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ์„  ์œ„ ์ฝ”๋“œ์—์„œ ํ•ด๋‹นํ•˜๋Š” ๋„ค ๋ฒˆ์งธ ์ˆ˜ํ–‰์€ cnt์™€ i๋ฅผ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ  j๋ฅผ 2์”ฉ ๊ฐ์†Œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋‹ค์„ฏ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฐ˜๋ณต),

์กฐ๊ฑด์‹์— ๋”ฐ๋ผ ์ข…๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

 

for์—์„œ ์ดˆ๊ธฐ ์กฐ๊ฑด๊ณผ ์ฆ๊ฐ์‹์„ ์ œ์™ธํ•œ ์˜ˆ์ œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ์š”.

int i = 0;
for (; i < 10; ) i++;

์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜€์ฃ ? ์—ฌ๊ธฐ์„œ ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ์—†์• ๊ณ  for๋ฅผ while๋กœ ๋ฐ”๊พธ๋ฉด ๊ทธ๋ƒฅ while๋ฌธ ์ž…๋‹ˆ๋‹ค.

 

int i = 0;
while (i < 10) i++;

// or

while (i < 10) {
	i++;
}

while๋ฌธ๋„ for๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กฐ๊ฑด์‹์—๋Š” boolean ๊ฐ’์ด ๋“ค์–ด๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค.

continue์™€ break๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

 

for๋ฌธ๊ณผ์˜ ์ฐจ์ด

 

์œ„ ์„ค๋ช…๋งŒ ๋“ค์—ˆ์„ ๋•Œ๋Š” for๋ฌธ๊ณผ ์ฐจ์ด๊ฐ€ ์—†์ฃ ??

for๋ฌธ์˜ ๊ฒฝ์šฐ, ์ดˆ๊ธฐ๊ฐ’๊ณผ ์ฆ๊ฐ์‹์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ์ €์žฅํ•ด๋‘ก๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งจ์ฒ˜์Œ ์ดˆ๊ธฐ๊ฐ’ ์„ ์–ธ์„ ํฌํ•จํ•œ ์ด 5๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜์ฃ .

๋ฐ˜๋ฉด์—, while๋ฌธ์€ ์ดˆ๊ธฐ๊ฐ’์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ์ €์žฅํ•  ์ˆ˜ ์—†์œผ๋ฉฐ while ๋ฌธ ๋ฐ–์—์„œ ํ• ๋‹น์„ ํ•ด์•ผํ•˜์ฃ .

 

์ฆ‰, ์ฃผ๋กœ for๋ฌธ์€ for๋ฌธ ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ 

while๋ฌธ์€ for๋ฌธ ์™ธ๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

for (int i = 0; i < 10; i++) {
	System.out.printf("%d ", (i+1));
}

int i = 0;
while (i < 10) {
	System.out.printf("%d ", (i+1);
}

 

 

์ฒซ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์กฐ๊ฑด์‹),

์กฐ๊ฑด๋™์•ˆ while๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ while๋ฌธ์€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

โ€ป ์กฐ๊ฑด์‹์€ boolean ๊ฐ’๋งŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฌธ๋ฒ•),

while ๋ฌธ ๋ธ”๋Ÿญ( ์ค‘๊ด„ํ˜ธ, {} ) ๋‚ด์— ํ‘œํ˜„ ๋œ ๋ฌธ๋ฒ•๋“ค์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ€ป ์ด ๋•Œ, while๋ฌธ์„ ์ข…๋ฃŒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์„ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด if๋ฌธ๊ณผ break, continue ๋ฌธ์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฐ˜๋ณต)

do - while ๋ฌธ

 

while ๋ฌธ์—๋Š” do - while๋ฌธ์ด๋ผ๋Š” ๊ฒƒ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

do - while๋ฌธ์€ ๋จผ์ € ์‹คํ–‰ ํ›„์— ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌํ•˜๋Š”๋ฐ์š”.

 

while๋ฌธ์€ ์„ธ ๊ฐ€์ง€ ์ˆ˜ํ–‰์„ ํ•˜๋Š”๋ฐ do - while๋ฌธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ธ ๊ฐ€์ง€ ์ˆ˜ํ–‰์„ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฌธ๋ฒ•),

do ๋ฌธ ๋ธ”๋Ÿญ( ์ค‘๊ด„ํ˜ธ, {} ) ๋‚ด์— ํ‘œํ˜„ ๋œ ๋ฌธ๋ฒ•๋“ค์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ€ป ์ด ๋•Œ, do-while๋ฌธ์„ ์ข…๋ฃŒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์„ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด if๋ฌธ๊ณผ break, continue ๋ฌธ์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (์กฐ๊ฑด์‹),

์กฐ๊ฑด๋™์•ˆ do-while๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ do-while๋ฌธ์€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

โ€ป ์กฐ๊ฑด์‹์€ boolean ๊ฐ’๋งŒ ๋ฉ๋‹ˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ ์ˆ˜ํ–‰ (๋ฐ˜๋ณต)

 

public class Main
{
	public static void main(String[] args) {
	    int i = 0;
	    do {
	        System.out.printf("%d ", ++i);
	    }
	    while (i < 10);
	}
}

 

๋…ธ์…˜ ์ •๋ฆฌ URL

https://www.notion.so/24jihwan/019643d1ca304dd684ceaa73c34cf08e

 

๋…ผ๋ฆฌ ์‚ฌ๊ณ  | Notion

์—ฐ์‚ฐ์ž์™€ ๋ช…๋ น๋ฌธ ์ดํ•ด

24jihwan.notion.site