๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Category/Java

[JAVA] ๋ฐ˜๋ณต๋ฌธ ์ •๋ฆฌ

by Corinee 2025. 1. 12.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 1. for ๋ฃจํ”„ (๊ธฐ๋ณธ for ๋ฌธ)

for ๋ฌธ์€ ์ „ํ†ต์ ์ธ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ, ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

โœ… ๋ฌธ๋ฒ•:

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

๐Ÿ“ฆ ์˜ˆ์ œ (๋ฐฐ์—ด ์ˆœํšŒ)

public class ForLoopExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // for ๋ฌธ์„ ์ด์šฉํ•œ ์ˆœํšŒ
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("์ˆซ์ž: " + numbers[i]);
        }
    }
}

โœ… ํŠน์ง•:

  • ์ธ๋ฑ์Šค๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์˜ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ˆœํšŒํ•  ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
  • ์ƒํƒœ ์œ ์ง€ ๊ฐ€๋Šฅ: i๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ถ”์  ๊ฐ€๋Šฅ.

๐Ÿ“Œ 2. ํ–ฅ์ƒ๋œ for ๋ฌธ (Enhanced for loop)

  • Java 5๋ถ€ํ„ฐ ๋„์ž…๋œ ๋ฐฉ์‹.
  • ์ปฌ๋ ‰์…˜/๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ง์ ‘ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹.
  • ์ธ๋ฑ์Šค ์ ‘๊ทผ์ด ํ•„์š” ์—†์„ ๋•Œ ์‚ฌ์šฉ.

๐Ÿ“ฆ ์˜ˆ์ œ (๋ฐฐ์—ด ์ˆœํšŒ)

public class EnhancedForLoop {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // ํ–ฅ์ƒ๋œ for ๋ฌธ ์‚ฌ์šฉ
        for (int num : numbers) {
            System.out.println("์ˆซ์ž: " + num);
        }
    }
}

โœ… ํŠน์ง•:

  • ๋” ๊ฐ„๊ฒฐํ•จ.
  • ์š”์†Œ๋งŒ ์ˆœํšŒ ๊ฐ€๋Šฅ (์ธ๋ฑ์Šค ์กฐ์ž‘ ๋ถˆ๊ฐ€)
  • ์ฝ๊ธฐ ์ „์šฉ ์ˆœํšŒ์— ์ ํ•ฉ.

๐Ÿ“Œ 3. forEach ๋ฉ”์„œ๋“œ (Java 8 ์ดํ›„)

  • Java 8๋ถ€ํ„ฐ ๋„์ž…๋œ Stream API์™€ ๋žŒ๋‹ค์‹ ๊ธฐ๋ฐ˜ ๋ฐ˜๋ณต ๋ฐฉ์‹.
  • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ.
  • ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ.

๐Ÿ“ฆ ์˜ˆ์ œ (๋ฆฌ์ŠคํŠธ ์ˆœํšŒ)

import java.util.Arrays;
import java.util.List;

public class ForEachExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("Apple", "Banana", "Cherry");

        // forEach ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ + ๋žŒ๋‹ค์‹
        fruits.forEach(fruit -> System.out.println("๊ณผ์ผ: " + fruit));
    }
}

โœ… ํŠน์ง•:

  • ๋žŒ๋‹ค ํ‘œํ˜„์‹ ์‚ฌ์šฉ.
  • ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ .
  • ๋‚ด๋ถ€ ๋ฐ˜๋ณต ๋ฐฉ์‹ ์‚ฌ์šฉ → ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ (parallelStream).

๐Ÿ“Œ 4. ๋น„๊ต (์ฃผ์š” ์ฐจ์ด์ )

            ํŠน์ง•                           for                                     ํ–ฅ์ƒ๋œ for                                           forEach

๋„์ž… ๋ฒ„์ „ Java 1.0 Java 5 Java 8
๋ฐฉ์‹ ์ธ๋ฑ์Šค ๊ธฐ๋ฐ˜ ์š”์†Œ ๊ธฐ๋ฐ˜ ๋žŒ๋‹ค ๊ธฐ๋ฐ˜
์ธ๋ฑ์Šค ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
์ปฌ๋ ‰์…˜ ์ˆœํšŒ ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ
์ŠคํŠธ๋ฆผ ์ง€์› ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ
์ฝ”๋“œ ๊ฐ„๊ฒฐ์„ฑ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณต์žก ๊ฐ„๊ฒฐ ๋งค์šฐ ๊ฐ„๊ฒฐ
์‚ฌ์šฉ ์˜ˆ์‹œ ๋ฐฐ์—ด, ๋ฒ”์œ„ ๋ฐ˜๋ณต ์ปฌ๋ ‰์…˜ ์ „์ฒด ์ˆœํšŒ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๐Ÿ“Œ 5. ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

โœ… for ๋ฌธ ์‚ฌ์šฉ ์ถ”์ฒœ:

  • ์ธ๋ฑ์Šค ๊ธฐ๋ฐ˜ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ.
  • ๋ฐฐ์—ด์˜ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ˆœํšŒํ•  ๋•Œ.
  • ๋ฃจํ”„์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ถ”์ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ.

โœ… ํ–ฅ์ƒ๋œ for ๋ฌธ ์‚ฌ์šฉ ์ถ”์ฒœ:

  • ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•  ๋•Œ.
  • ์ธ๋ฑ์Šค ์กฐ์ž‘์ด ํ•„์š” ์—†์„ ๋•Œ.

โœ… forEach ์‚ฌ์šฉ ์ถ”์ฒœ:

  • ์ž๋ฐ” 8 ์ด์ƒ์˜ ๋žŒ๋‹ค์‹ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ.
  • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ ์šฉํ•  ๋•Œ.
  • ์ŠคํŠธ๋ฆผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ.