๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Java/๐Ÿ’Š Java ๊ฐ•์˜

Java ์ž…๋ฌธ ๊ฐ•์˜_๋ฐ˜๋ณต๋ฌธ

by carrot0911 2024. 10. 29.

๋ฐ˜๋ณต๋ฌธ ์‹œ์ž‘

๋ฐ˜๋ณต๋ฌธ์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ํŠน์ • ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
์ž๋ฐ”๋Š” ๋‹ค์Œ 3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ฐ˜๋ณต๋ฌธ์„ ์ œ๊ณตํ•œ๋‹ค.

while, do-while, for

๋จผ์ € ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ์ด ์™œ ํ•„์š”ํ•œ์ง€ ์ด์œ ๋ฅผ ์•Œ์•„๋ณด์ž.

While1_1

package loop;

public class While1_1 {

    public static void main(String[] args) {
        int count = 0;

        count = count + 1;
        System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + count);
        count = count + 1;
        System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + count);
        count = count + 1;
        System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + count);
    }
}

์ถœ๋ ฅ

ํ˜„์žฌ ์ˆซ์ž๋Š” : 1
ํ˜„์žฌ ์ˆซ์ž๋Š” : 2
ํ˜„์žฌ ์ˆซ์ž๋Š” : 3

๋‹จ์ˆœํžˆ count ์— ๊ฐ’์„ 1์”ฉ ๋”ํ•˜๋Š” ๋‹จ์ˆœํ•œ ์˜ˆ์ œ์ด๋‹ค. ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” 3 ์ด๋‹ค.

count = count + 1 ์€ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž(++)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ 3๋ฒˆ ๋ฐ˜๋ณต๋˜๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ์—๋Š” 1์„ ํ•œ ๋ฒˆ์”ฉ ๋”ํ•ด์„œ ์ด 100๋ฒˆ ๋”ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.
์•„๋งˆ๋„ ์ง์ ‘ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ 100๋ฒˆ ๋ฐ˜๋ณต๋  ๊ฒƒ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ํŠน์ • ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค.
๋ฐ˜๋ณต๋ฌธ์—๋Š” while, for ๋ฌธ์ด ์žˆ๋‹ค. ๋จผ์ € while ๋ฌธ๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž.

while๋ฌธ 1

while๋ฌธ์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

while (์กฐ๊ฑด์‹) {
	//์ฝ”๋“œ
}
  • ์กฐ๊ฑด์‹์„ ํ™•์ธํ•œ๋‹ค. ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด while๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.
  • ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ํ•œ๋‹ค. ์ดํ›„์— ์ฝ”๋“œ ๋ธ”๋ก์ด ๋๋‚˜๋ฉด ๋‹ค์‹œ ์กฐ๊ฑด์‹ ๊ฒ€์‚ฌ๋กœ ๋Œ์•„๊ฐ€์„œ ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌํ•œ๋‹ค. (๋ฌดํ•œ๋ฐ˜๋ณต)

while๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ 1์„ ํ•œ ๋ฒˆ์”ฉ ๋”ํ•ด์„œ ์ด 3๋ฒˆ ๋”ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

While1_2

package loop;

public class While1_2 {

    public static void main(String[] args) {
        int count = 0;

        while (count < 3) {
            count = count + 1;
            System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + count);
        }
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ

ํ˜„์žฌ ์ˆซ์ž๋Š” : 1
ํ˜„์žฌ ์ˆซ์ž๋Š” : 2
ํ˜„์žฌ ์ˆซ์ž๋Š” : 3

while  (count < 3) ์—์„œ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ count ์˜ ๊ฐ’์ด 1, 2, 3 ์œผ๋กœ ์ ์  ์ปค์ง€๋‹ค๊ฐ€ ๊ฒฐ๊ตญ count < 3 ์ด ๊ฑฐ์ง“์ด ๋˜๋ฉด์„œ while ๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

while (count < 3) ์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ  while (count < 100) ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด while ๋ฌธ์˜ ์ฝ”๋“œ ๋ธ”๋ก์„ 100๋ฒˆ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

while๋ฌธ 2

์ด๋ฒˆ์—๋Š” ๋‚œ์ด๋„๋ฅผ ์กฐ๊ธˆ ๋†’์—ฌ๋ณด์ž. ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ๊ฐ™์ด ํ’€์–ด๋ณด์ž.

๋ฌธ์ œ : 1๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ 3๋ฒˆ ๋”ํ•ด๋ผ (1 ~ 3 ๋”ํ•˜๊ธฐ)

์ด ๋ฌธ์ œ๋Š” 1๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— 1 + 2 + 3์„ ๋”ํ•ด์•ผ ํ•œ๋‹ค.

์šฐ์„  while ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœ ๋ฌด์‹ํ•˜๊ฒŒ ํ’€์–ด๋ณด์ž.

while2_1

package loop;

public class While2_1 {

    public static void main(String[] args) {
        int sum = 0;
        sum = sum + 1;
        System.out.println("i = " + 1 + ", sum = " + sum);
        
        sum = sum + 2;
        System.out.println("i = " + 2 + ", sum = " + sum);

        sum = sum + 3;
        System.out.println("i = " + 3 + ", sum = " + sum);
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ

i = 1, sum = 1
i = 2, sum = 3
i = 3, sum = 6

์ด ์ฝ”๋“œ์˜ ์ •๋‹ต์€ ๋งž๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ์„ ํ•  ์ ์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ ๋ฌด์—‡๋ณด๋‹ค ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•˜์ง€ ์•Š๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”๊ตฌ์‚ฌํ•ญ์ด ํ•˜๋‚˜ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.

๋ฌธ์ œ : 10๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ 3๋ฒˆ ๋”ํ•ด๋ผ (10 ~ 12 ๋”ํ•˜๊ธฐ)

์ด๋ ‡๊ฒŒ ๋˜๋ฉด 10 + 11 + 12 ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ œ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.
๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋” ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„์„ ๋ณ€์ˆ˜ i ๋กœ ๋ฐ”๊พธ์–ด๋ณด์ž.

๋ฌธ์ œ : i๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ 3๋ฒˆ ๋”ํ•ด๋ผ (i ~ i + 2 ๋”ํ•˜๊ธฐ)

While2_2

package loop;

public class While2_2 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
        i++;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
        i++;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ

//i = 1
i = 1, sum = 1
i = 2, sum = 3
i = 3, sum = 6

๋ณ€์ˆ˜ i ๋ฅผ ์‚ฌ์šฉํ•œ ๋•๋ถ„์— i ์˜ ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋ฅผ ์ „ํ˜€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

i = 10 ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค๋ฅธ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์—†์ด ์•ž์„œ ์ด์•ผ๊ธฐํ•œ 10 + 11 + 12 ์˜ ๋ฌธ์ œ๋„ ๋ฐ”๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
์ถœ๋ ฅ ๊ฒฐ๊ณผ

//i = 10
i = 10, sum = 10
i = 11, sum = 21
i = 12, sum = 33

์ข‹์€ ์ฝ”๋“œ์ธ์ง€ ์•„๋‹Œ์ง€๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ ์„์ˆ˜๋ก ์ข‹์€ ์ฝ”๋“œ์ด๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ƒˆ๋กœ์šด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋“ฑ์žฅํ–ˆ๋‹ค.
๊ธฐ์กด ๋ฌธ์ œ : i๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ 3๋ฒˆ๊นŒ์ง€ ๋”ํ•ด๋ผ (i ~ i + 2 ๋”ํ•˜๊ธฐ)
์ƒˆ๋กœ์šด ๋ฌธ์ œ : i๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ endNum(๋งˆ์ง€๋ง‰์ˆ˜)๊นŒ์ง€ ๋”ํ•ด๋ผ (i ~ endNum ๋”ํ•˜๊ธฐ)

์˜ˆ)

  • i = 1, endNum = 3 ์ด๋ผ๊ณ  ํ•˜๋ฉด 1 ~ 3๊นŒ์ง€ ์ด 3๋ฒˆ ๋”ํ•ด์•ผ ํ•œ๋‹ค.
  • i = 1, endNum = 10 ์ด๋ผ๊ณ  ํ•˜๋ฉด 1 ~ 10๊นŒ์ง€ ์ด 10๋ฒˆ ๋”ํ•ด์•ผ ํ•œ๋‹ค.
  • i = 10, endNum = 12 ์ด๋ผ๊ณ  ํ•˜๋ฉด 10 ~ 12๊นŒ์ง€ ์ด 3๋ฒˆ ๋”ํ•ด์•ผ ํ•œ๋‹ค.

๋จผ์ € i = 1, endNum = 3 ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์ž.

While2_3

package loop;

public class While2_3 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        int endNum = 3;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
        i++;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
        i++;

        sum = sum + i;
        System.out.println("i = " + i + ", sum = " + sum);
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ

i = 1, sum = 1
i = 2, sum = 3
i = 3, sum = 6

i = 1, endNum = 3 ์ด๋ฏ€๋กœ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ 3๋ฒˆ ๋ฐ˜๋ณตํ•ด์•ผ ํ•œ๋‹ค.

sum = sum + i;
System.out.println("i = " + i + ", sum = " + sum);
i++;

๊ทธ๋Ÿฐ๋ฐ i = 1, endNum = 10 ์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋ฉด ์ด ์ฝ”๋“œ๋ฅผ ์ด 10๋ฒˆ ๋ฐ˜๋ณตํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋” ๋งŽ์ด ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํšŸ์ˆ˜๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•œ๋งˆ๋””๋กœ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

while ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ํšŸ์ˆ˜๋งŒํผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

While2_3 - ์ฝ”๋“œ ๋ณ€๊ฒฝ

package loop;

public class While2_3 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        int endNum = 3;

        while (i <= endNum) {
            sum = sum + i;
            System.out.println("i = " + i + ", sum = " + sum);
            i++;
        }
    }
}

๋ฐ˜๋ณต ํšŸ์ˆ˜ ์ •ํ•˜๊ธฐ
i ๊ฐ€ endNum ์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

  • i = 1, endNum = 3 ์ด๋ผ๋ฉด 3๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค. i = 1 → 2 → 3
  • i = 3, endNum = 4 ๋ผ๋ฉด 2๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค. i = 3 → 4

while๋ฌธ ์ž‘์„ฑํ•˜๊ธฐ

  • while ๋ฌธ์—์„œ i <= endNum ์กฐ๊ฑด์„ ํ†ตํ•ด i ๊ฐ€ endNum ์ด ๋  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•œ๋‹ค.
  • i ๊ฐ€ endNum ๋ณด๋‹ค ํฌ๋ฉด while ๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ

//i = 1, endNum = 3
i = 1, sum = 1
i = 2, sum = 3
i = 3, sum = 6

//i = 1, endNum = 10
i = 1, sum = 1
i = 2, sum = 3
i = 3, sum = 6
i = 4, sum = 10
i = 5, sum = 15
i = 6, sum = 21
i = 7, sum = 28
i = 8, sum = 36
i = 9, sum = 45
i = 10, sum = 55

//i = 10, sum = 12
i = 10, sum = 10
i = 11, sum = 21
i = 12, sum = 33

์‹คํ–‰ ์ฝ”๋“œ ๋ถ„์„

sum(0), i(1), endNum(3)
//๋ฃจํ”„ 1
while (i(1) <= endNum(3)) -> true
sum(0) + i(1) -> sum(1)
i(1)++ -> i(2)

//๋ฃจํ”„ 2
while (i(2) <= endNum(3)) -> true
sum(1) + i(2) -> sum(3)
i(2)++ -> i(3)

//๋ฃจํ”„ 3
while (i(3) <= endNum(3)) -> true
sum(3) + i(3) -> sum(6)
i(3)++ -> i(4)

//๋ฃจํ”„ 4
while (i(4) <= endNum(3)) -> false

 

do_while๋ฌธ

do_while ๋ฌธ์€ while ๋ฌธ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์กฐ๊ฑด์— ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

do-while๋ฌธ ๊ตฌ์กฐ

do {
    // ์ฝ”๋“œ
} while (์กฐ๊ฑด์‹);

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜์ง€ ์•Š์•„๋„ ํ•œ ๋ฒˆ์€ ํ˜„์žฌ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž.
๋จผ์ € while ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ๋ฅผ ๋ณด์ž.

DoWhile1

package loop;

public class DoWhile2 {

    public static void main(String[] args) {
        int i = 10;

        while (i < 3) {
            System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + i);
            i ++;
        }
    }
}

DoWhile2

package loop;

public class DoWhile2 {

    public static void main(String[] args) {
        int i = 10;

        do {
            System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š” : " + i);
            i++;
        } while (i < 3);
    }
}

do-while ๋ฌธ์€ ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋จผ์ € ํ˜„์žฌ ์ˆซ์ž๋Š” : 10 ์ด ์ถœ๋ ฅ๋œ๋‹ค.
์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ ํ›„์— ์กฐ๊ฑด์‹์„ ๊ฒ€์ฆํ•˜๋Š”๋ฐ, i = 10 ์ด๊ธฐ ๋•Œ๋ฌธ์— while (i < 3) ์กฐ๊ฑด์‹์€ ๊ฑฐ์ง“์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ do-while ๋ฌธ์„ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

์ถœ๋ ฅ ๊ฒฐ๊ณผ

ํ˜„์žฌ ์ˆซ์ž๋Š” : 10

do-while ๋ฌธ์€ ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ๊ผญ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

break, continue

break ์™€ continue ๋Š” ๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋‹ค.
break ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜๊ณ  ๋‚˜๊ฐ„๋‹ค. continue ๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ while, do-while, for ์™€ ๊ฐ™์€ ๋ชจ๋“  ๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

break

while (์กฐ๊ฑด์‹) {
    ์ฝ”๋“œ 1;
    break;  //์ฆ‰์‹œ while๋ฌธ ์ข…๋ฃŒํ•˜๊ณ  ์ด๋™ํ•œ๋‹ค.
    ์ฝ”๋“œ 2;
}
//while๋ฌธ ์ข…๋ฃŒ

break ๋ฅผ ๋งŒ๋‚˜๋ฉด ์ฝ”๋“œ 2 ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  while๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.

continue

while (์กฐ๊ฑด์‹) {
	์ฝ”๋“œ 1;
    continue;  //์ฆ‰์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
    ์ฝ”๋“œ 2;
}

continue ๋ฅผ ๋งŒ๋‚˜๋ฉด ์ฝ”๋“œ 2 ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋‹ค์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด while ๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.

๋ฌธ์ œ : 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ˆซ์ž๋ฅผ ๊ณ„์† ๋ˆ„์ ํ•ด์„œ ๋”ํ•˜๋‹ค๊ฐ€ ํ•ฉ๊ณ„๊ฐ€ 10๋ณด๋‹ค ์ฒ˜์Œ์œผ๋กœ ํฐ ๊ฐ’์€ ์–ผ๋งˆ์ธ๊ฐ€?
1 + 2 + 3 ... ๊ณ„์† ๋”ํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ํ•ฉ์ด 10๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

Break1

package loop;

public class Break1 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;

        while (true) {
            sum = sum + i;
            if (sum > 10) {
                System.out.println("ํ•ฉ์ด 10๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ : i = " + i + ", sum = " + sum);
                break;
            }
            i++;
        }
    }
}
  • ์กฐ๊ฑด์‹์„ ์ž˜ ๋ณด๋ฉด true ๋ผ๊ณ  ๋˜์–ด ์žˆ๋‹ค. ์กฐ๊ฑด์ด ํ•ญ์ƒ ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ๋‘๋ฉด while ๋ฌธ์€ ๋ฌดํ•œ ๋ฐ˜๋ณต๋œ๋‹ค. ๋ฌผ๋ก  break ๋ฌธ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ๋งŒ์•ฝ sum > 10 ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , break ๋ฅผ ์‚ฌ์šฉํ•ด์„œ while ๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ

ํ•ฉ์ด 10๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ : i = 5, sum = 15

๋ฌธ์ œ : 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ์ˆซ์ž๊ฐ€ 3์ผ ๋•Œ๋Š” ์ถœ๋ ฅ์„ ๊ฑด๋„ˆ๋›ฐ์–ด์•ผ ํ•œ๋‹ค.

Continue1

package loop;

public class Continue1 {

    public static void main(String[] args) {
        int i = 1;

        while (i <= 5) {
            if (i == 3) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
    }
}

i == 3 ์ธ ๊ฒฝ์šฐ i ๋ฅผ ํ•˜๋‚˜ ์ฆ๊ฐ€ํ•˜๊ณ  continue ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์—๋Š” i ๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ while (i <= 5) ์กฐ๊ฑด์‹์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ

1
2
4
5

์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด 3์ผ ๋•Œ๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

for๋ฌธ 1

for๋ฌธ๋„ while๋ฌธ๊ณผ ๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ์ด๊ณ , ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. for๋ฌธ์€ ์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

for๋ฌธ ๊ตฌ์กฐ

for (1.์ดˆ๊ธฐ์‹; 2.์กฐ๊ฑด์‹; 4.์ฆ๊ฐ์‹) {
    // 3.์ฝ”๋“œ
}

for๋ฌธ์€ ๋‹ค์Œ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋œ๋‹ค.

  1. ์ดˆ๊ธฐ์‹์ด ์‹คํ–‰๋œ๋‹ค. ์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ดˆ๊ธฐ์‹์€ ๋”ฑ 1๋ฒˆ ์‚ฌ์šฉ๋œ๋‹ค.
  2. ์กฐ๊ฑด์‹์„ ๊ฒ€์ฆํ•œ๋‹ค. ์ฐธ์ด๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด for๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.
  3. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  4. ์ฝ”๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ฆ๊ฐ์‹์„ ์‹คํ–‰ํ•œ๋‹ค. ์ฃผ๋กœ ์ดˆ๊ธฐ์‹์— ๋„ฃ์€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฆ๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  5. ๋‹ค์‹œ 2. ์กฐ๊ฑด์‹๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. (๋ฌดํ•œ ๋ฐ˜๋ณต)

for๋ฌธ์€ ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ while๋ฌธ์„ ์กฐ๊ธˆ ๋” ํŽธํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐํ™”ํ•œ ๊ฒƒ๋ฟ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ์ถœ๋ ฅํ•˜๋Š” for๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

for (int i = 1; i < 10; i++) {
    System.out.println(i);
}
  1. ์ดˆ๊ธฐ์‹์ด ์‹คํ–‰๋œ๋‹ค. int i = 1
  2. ์กฐ๊ฑด์‹์„ ๊ฒ€์ฆํ•œ๋‹ค. i <= 10
  3. ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. System.out.println(i);
  4. ์ฝ”๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ฆ๊ฐ์‹์„ ์‹คํ–‰ํ•œ๋‹ค. i++
  5. ๋‹ค์‹œ 2. ์กฐ๊ฑด์‹์„ ๊ฒ€์ฆํ•œ๋‹ค. (๋ฌดํ•œ๋ฐ˜๋ณต) ์ดํ›„ i <= 10 ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด ๋˜๋ฉด for๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

For1

package loop;

public class For1 {

    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

๋ฌธ์ œ : i๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ endNum(๋งˆ์ง€๋ง‰์ˆ˜)๊นŒ์ง€ ๋”ํ•ด๋ผ (i ~ endNum ๋”ํ•˜๊ธฐ)

For2

package loop;

public class For2 {

    public static void main(String[] args) {
        int sum = 0;
        int endNum = 3;

        // 1 + 2 + 3 = 6
        for (int i = 1; i <= endNum; i++) {
            sum = sum + i;
        }
        System.out.println("sum = " + sum);
    }
}

for vs while

While2_3

package loop;

public class While2_3 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 10;
        int endNum = 12;

        while (i <= endNum) {
            sum = sum + i;
            System.out.println("i = " + i + ", sum = " + sum);
            i++;
        }
    }
}

๋‘˜์„ ๋น„๊ตํ–ˆ์„ ๋•Œ for๋ฌธ์ด ๋” ๊น”๋”ํ•˜๋‹ค๋Š” ๋А๋‚Œ์„ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค. for๋ฌธ์€ ์ดˆ๊ธฐํ™”, ์กฐ๊ฑด ๊ฒ€์‚ฌ, ๋ฐ˜๋ณต ํ›„ ์ž‘์—… ๋“ฑ์ด ๊ทœ์น™์ ์œผ๋กœ ํ•œ ์ค„์— ๋ชจ๋‘ ๋“ค์–ด ์žˆ์–ด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ๋” ์‰ฝ๋‹ค. ํŠนํžˆ ๋ฐ˜๋ณต์„ ์œ„ํ•ด ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ์นด์šดํ„ฐ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ถ€๋ถ„๊ณผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

for (int i = 1; i <= endNum; i++)
์—ฌ๊ธฐ์„œ๋Š” ๋ฐ”๋กœ ๋ณ€์ˆ˜ i ๊ฐ€ ์นด์šดํ„ฐ ๋ณ€์ˆ˜์ด๋‹ค. ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ , ๋˜ ๋ณ€์ˆ˜ i ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ณ„์† ๋ฐ˜๋ณตํ• ์ง€ ์•„๋‹ˆ๋ฉด ๋น ์ ธ๋‚˜๊ฐˆ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋ถ€ํ„ฐ, ๊ฐ’ ์ฆ๊ฐ€, ๋˜ ์กฐ๊ฑด์‹์— ํ™œ์šฉ๊นŒ์ง€ for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋•๋ถ„์— ๊ฐœ๋ฐœ์ž๋Š” ๋ฃจํ”„ ํšŸ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜๋ฉด์— while์„ ๋ณด๋ฉด ๋ณ€์ˆ˜ i ๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„ ๊ทธ๋ฆฌ๊ณ  i++ ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ธฐ์กด ์ฝ”๋“œ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋‹ค.

 

for๋ฌธ 2

for๋ฌธ ๊ตฌ์กฐ

for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    // ์ฝ”๋“œ
}

for๋ฌธ์—์„œ ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์€ ์„ ํƒ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ชจ๋‘ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค. ๋‹จ ์ƒ๋žตํ•ด๋„ ๊ฐ ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์€ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

for (;;) {
     // ์ฝ”๋“œ
 }

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์กฐ๊ฑด์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ ๋ฐ˜๋ณตํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๋œ๋‹ค.

while (true) {
     // ์ฝ”๋“œ
 }

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์ž.
๋ฌธ์ œ : 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ˆซ์ž๋ฅผ ๊ณ„์† ๋ˆ„์ ํ•˜์—ฌ ๋”ํ•˜๋‹ค๊ฐ€ ํ•ฉ๊ณ„๊ฐ€ 10๋ณด๋‹ค ํฐ ์ฒ˜์Œ ๊ฐ’์€ ์–ผ๋งˆ์ธ๊ฐ€?
1 + 2 + 3 ... ๊ณ„์† ๋”ํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ํ•ฉ์ด 10๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

package loop;

public class Break2 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;

        for (;;) {
            sum += i;

            if (sum > 10) {
                System.out.println("ํ•ฉ์ด 10๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ : i = " + i + ", sum = " + sum);
                break;
            }
            i++;
        }
    }
}
  • for ( ; ; ) ๋ฅผ ๋ณด๋ฉด ์กฐ๊ฑด์‹์ด ์—†๋‹ค. for๋ฌธ์€ ์กฐ๊ฑด์ด ์—†์œผ๋ฉด ๋ฌดํ•œ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • sum > 10 ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด break ๋ฅผ ์‚ฌ์šฉํ•ด์„œ for๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

for๋ฌธ์€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ’์ด ๋ฌด์—‡์ธ์ง€ ์ดˆ๊ธฐ์‹๊ณผ ์ฆ๊ฐ์‹์„ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ฝ”๋“œ๋‚˜ while๋ฌธ์„ ๋ณด๋ฉด ์–ด๋–ค ๊ฐ’์ด ๋ฐ˜๋ณต์— ์‚ฌ์šฉ๋˜๋Š” ์ฆ๊ฐ€๊ฐ’์ธ์ง€ ์ฆ‰์‹œ ํ™•์ธํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” i ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ’์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด i ๋ฅผ for ๋ฌธ์— ๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋ฉด ๋” ๊น”๋”ํ•œ ์ฝ”๋“œ๊ฐ€ ๋œ๋‹ค.

Break3

package loop;

public class Break3 {

    public static void main(String[] args) {
        int sum = 0;

        for (int i = 1; ; i++) {
            sum += i;

            if (sum > 10) {
                System.out.println("ํ•ฉ์ด 10๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ : i = " + i + ", sum = " + sum);
                break;
            }
        }
    }
}

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

โœ”๏ธ์ฐธ๊ณ 
for๋ฌธ์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ํ–ฅ์ƒ๋œ for๋ฌธ ๋˜๋Š” for-each๋ฌธ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ๋ฐ˜๋ณต๋ฌธ๋„ ์žˆ๋‹ค.

 

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

๋ฐ˜๋ณต๋ฌธ์€ ๋‚ด๋ถ€์— ๋˜ ๋ฐ˜๋ณต๋ฌธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. for, while ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

Nested1

package loop;

public class Nested1 {

    public static void main(String[] args) {
        for (int i = 0; i < 2; i++) {
            System.out.println("์™ธ๋ถ€ for ์‹œ์ž‘ i : " + i);
            for (int j = 0; j < 3; j++) {
                System.out.println("--> ๋‚ด๋ถ€ for " + i + " - " + j);
            }
            System.out.println("์™ธ๋ถ€ for ์ข…๋ฃŒ i : " + i);
            System.out.println();  //๋ผ์ธ ๊ตฌ๋ถ„์„ ์œ„ํ•ด ์„ค๋ช…
        }
    }
}

์™ธ๋ถ€ for๋Š” 2๋ฒˆ, ๋‚ด๋ถ€ for๋Š” 3๋ฒˆ ์‹คํ–‰๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™ธ๋ถ€ for 1๋ฒˆ๋‹น ๋‚ด๋ถ€ for๊ฐ€ 3๋ฒˆ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€(2) * ๋‚ด๋ถ€(3) ํ•ด์„œ ์ด 6๋ฒˆ์˜ ๋‚ด๋ถ€ for ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค.

 

๋ฌธ์ œ์™€ ํ’€์ด 1

๋ฌธ์ œ : ์ž์—ฐ์ˆ˜ ์ถœ๋ ฅ

์ฒ˜์Œ 10๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. ์ด๋•Œ, count ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
while๋ฌธ, for๋ฌธ 2๊ฐ€์ง€ ๋ฒ„์ „์˜ ์ •๋‹ต์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •๋‹ต : ์ž์—ฐ์ˆ˜ ์ถœ๋ ฅ - while

package loop.ex;

public class WhileEx1 {

    public static void main(String[] args) {
        int count = 1;

        while (count <= 10) {
            System.out.println(count);
            count++;
        }
    }
}

์ •๋‹ต : ์ž์—ฐ์ˆ˜ ์ถœ๋ ฅ - for

package loop.ex;

public class ForEx1 {

    public static void main(String[] args) {
        for (int count = 1; count <= 10; count++) {
            System.out.println(count);
        }
    }
}

๋ฌธ์ œ : ์ง์ˆ˜ ์ถœ๋ ฅ

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ 10๊ฐœ์˜ ์ง์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. ์ด๋•Œ, num ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
while๋ฌธ, for๋ฌธ 2๊ฐ€์ง€ ๋ฒ„์ „์˜ ์ •๋‹ต์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •๋‹ต : ์ง์ˆ˜ ์ถœ๋ ฅ - while

package loop.ex;

public class WhileEx2 {

    public static void main(String[] args) {
        int num = 2;
        int count = 1;

        while (count <= 10) {
            System.out.println(num);
            num += 2;
            count++;
        }
    }
}

์ •๋‹ต : ์ง์ˆ˜ ์ถœ๋ ฅ - for

package loop.ex;

public class ForEx2 {

    public static void main(String[] args) {
        int num = 2;
        for (int count = 1; count <= 10; count++) {
            System.out.println(num);
            num += 2;
        }
    }
}

๋ฌธ์ œ : ๋ˆ„์  ํ•ฉ ๊ณ„์‚ฐ

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ max ๊นŒ์ง€์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. ์ด๋•Œ, sum ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ˆ„์ ํ•ฉ์„ ํ‘œํ˜„ํ•˜๊ณ , i ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด์šดํŠธ(1๋ถ€ํ„ฐ max๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋Š” ๋ณ€์ˆ˜)๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
while๋ฌธ, for๋ฌธ 2๊ฐ€์ง€ ๋ฒ„์ „์˜ ์ •๋‹ต์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •๋‹ต : ๋ˆ„์  ํ•ฉ ๊ณ„์‚ฐ - while

package loop.ex;

public class WhileEx3 {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        int max = 100;

        while (i <= max) {
            sum += i;
            i++;
        }
        System.out.println(sum);
    }
}

์ •๋‹ต : ๋ˆ„์  ํ•ฉ ๊ณ„์‚ฐ - for

package loop.ex;

public class ForEx3 {

    public static void main(String[] args) {
        int sum = 0;
        int max = 100;

        for (int i = 1; i <= max; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

 

๋ฌธ์ œ์™€ ํ’€์ด 2

๋ฌธ์ œ : ๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅ

์ค‘์ฒฉ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌ๊ตฌ๋‹จ์„ ์™„์„ฑํ•ด๋ผ.

์ •๋‹ต : ๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅ

package loop.ex;

public class NestedEx1 {

    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                System.out.println(i + " * " + j + " = " + (i * j));

            }
            System.out.println();
        }
    }
}

๋ฌธ์ œ : ํ”ผ๋ผ๋ฏธ๋“œ ์ถœ๋ ฅ

int rows ๋ฅผ ์„ ์–ธํ•ด๋ผ.
์ด ์ˆ˜๋งŒํผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”ผ๋ผ๋ฏธ๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

โœ”๏ธ์ฐธ๊ณ 
println() ์€ ์ถœ๋ ฅ ํ›„ ๋‹ค์Œ ๋ผ์ธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๋ผ์ธ์„ ๋„˜๊ธฐ์ง€ ์•Š๊ณ  ์ถœ๋ ฅํ•˜๋ ค๋ฉด print() ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
์˜ˆ) System.out.print("*")

์ •๋‹ต : ํ”ผ๋ผ๋ฏธ๋“œ ์ถœ๋ ฅ

package loop.ex;

public class NestedEx2 {

    public static void main(String[] args) {
        int rows = 10;

        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

์ •๋ฆฌ

while vs for

for๋ฌธ

์žฅ์  : 

  • ์ดˆ๊ธฐํ™”, ์กฐ๊ฑด ์ฒดํฌ, ๋ฐ˜๋ณต ํ›„์˜ ์ž‘์—…์„ ํ•œ ์ค„์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•˜๋‹ค.
  • ์ •ํ•ด์ง„ ํšŸ์ˆ˜๋งŒํผ์˜ ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•˜๋‹ค.
  • ๋ฃจํ”„ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ for ๋ฃจํ”„ ๋ธ”๋ก์— ์ œํ•œ๋˜๋ฏ€๋กœ, ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ด ๋ณ€์ˆ˜๋ฅผ ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ๋‹ค.

๋‹จ์  :

  • ๋ฃจํ”„์˜ ์กฐ๊ฑด์ด ๋ฃจํ”„ ๋‚ด๋ถ€์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ, for ๋ฃจํ”„๋Š” ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๊ฐ€์ง„ ๋ฐ˜๋ณต๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ์—๋Š” while๋ฌธ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

while๋ฌธ

์žฅ์  :

  • ๋ฃจํ”„์˜ ์กฐ๊ฑด์ด ๋ฃจํ”„ ๋‚ด๋ถ€์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ, while ๋ฃจํ”„๋Š” ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • for ๋ฃจํ”„๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ์กฐ๊ฑด๊ณผ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•˜๋‹ค.
  • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋Š” ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์ข…๋ฃŒ ์‹œ์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค.

๋‹จ์  :

  • ์ดˆ๊ธฐํ™”, ์กฐ๊ฑด ์ฒดํฌ, ๋ฐ˜๋ณต ํ›„์˜ ์ž‘์—…์ด ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ์ž‘์„ฑํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฃจํ”„ ๋ณ€์ˆ˜๊ฐ€ while ๋ธ”๋ก ๋ฐ”๊นฅ์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ด ๋ณ€์ˆ˜๋ฅผ ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•œ ์ค„๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด ์ •ํ•ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฉด for๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด while๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์ด ํ•ญ์ƒ ์ •๋‹ต์€ ์•„๋‹ˆ๋‹ˆ ๊ธฐ์ค€์œผ๋กœ ์‚ผ๋Š” ์ •๋„๋กœ ์ดํ•ดํ•˜์ž.