โŒจ๏ธ Language/Java

[Java] Java ์ œ์–ด๋ฌธ ์™„์ „ ์ •๋ณต!

hyebin (Helia) 2025. 5. 10. 17:21
๋ฐ˜์‘ํ˜•

 


๋ชฉ์ฐจ

     

    ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

    Java์—์„œ๋Š” ์ด๋Ÿฐ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์œ„ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ ์ œ์–ด๋ฌธ(Control Statements)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

     

    ์˜ค๋Š˜์€ Java์˜ ๋Œ€ํ‘œ์ ์ธ ์ œ์–ด๋ฌธ์ธ ์กฐ๊ฑด๋ฌธ(if, switch)๊ณผ ๋ฐ˜๋ณต๋ฌธ(for, while, do-while), ๊ทธ๋ฆฌ๊ณ  ํ๋ฆ„ ์ œ์–ด ํ‚ค์›Œ๋“œ(break, continue)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


    โœ…  ์กฐ๊ฑด๋ฌธ (Conditional Statements)

    ์กฐ๊ฑด๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์ด ์ฐธ์ธ์ง€ ๊ฑฐ์ง“์ธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.

     if ๋ฌธ

    ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ, ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด true์ผ ๋•Œ ๋ธ”๋ก ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    int age = 20;
    
    if (age >= 18) {
        System.out.println("์„ฑ์ธ์ž…๋‹ˆ๋‹ค.");
    }

     

    ๐Ÿ“Œ else, else if๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋‚˜๋ˆ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”!

    if (age >= 18) {
        System.out.println("์„ฑ์ธ์ž…๋‹ˆ๋‹ค.");
    } else if (age >= 13) {
        System.out.println("์ฒญ์†Œ๋…„์ž…๋‹ˆ๋‹ค.");
    } else {
        System.out.println("์–ด๋ฆฐ์ด์ž…๋‹ˆ๋‹ค.");
    }

     

    switch ๋ฌธ

    switch๋Š” ํŠน์ • ๊ฐ’์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ„๊ธฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    int day = 3;
    
    switch (day) {
        case 1:
            System.out.println("์›”์š”์ผ");
            break;
        case 2:
            System.out.println("ํ™”์š”์ผ");
            break;
        case 3:
            System.out.println("์ˆ˜์š”์ผ");
            break;
        default:
            System.out.println("์ฃผ์ค‘์ด ์•„๋‹™๋‹ˆ๋‹ค.");
    }
    ๐Ÿ’ก break๋ฅผ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ case๋กœ ๊ณ„์† ์‹คํ–‰(fall-through) ๋˜๋ฏ€๋กœ ๊ผญ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

     

     

    ๐Ÿ“Œ Java 12์˜ switch ํ‘œํ˜„์‹

    Java 12๋ถ€ํ„ฐ๋Š” switch๋ฅผ ํ‘œํ˜„์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™”์‚ดํ‘œ(->)์™€ ํ•จ๊ป˜ ๋” ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    String day = "MONDAY";
    String result = switch (day) {
        case "MONDAY", "TUESDAY" -> "์ฃผ์ค‘";
        case "SATURDAY", "SUNDAY" -> "์ฃผ๋ง";
        default -> "์•Œ ์ˆ˜ ์—†์Œ";
    };

    ๐Ÿ”„ ๋ฐ˜๋ณต๋ฌธ (Loop Statements)

    ๋ฐ˜๋ณต๋ฌธ์€ ํŠน์ • ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.

     

    for ๋ฌธ

    ์ •ํ•ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค.

    for (์ดˆ๊ธฐํ™”; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
        // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ
    }
    
    for (int i = 0; i < 5; i++) {
        System.out.println("i = " + i);
    }

     

    ์‹คํ–‰ ์ˆœ์„œ:

    1. ์ดˆ๊ธฐํ™”: ๋ฐ˜๋ณต์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
    2. ์กฐ๊ฑด์‹ ํ‰๊ฐ€: true์ด๋ฉด ๋ธ”๋ก ๋‚ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰, false์ด๋ฉด ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
    3. ๋ธ”๋ก ์ฝ”๋“œ ์‹คํ–‰
    4. ์ฆ๊ฐ์‹ ์‹คํ–‰
    5. 2~4 ๋‹จ๊ณ„ ๋ฐ˜๋ณต

     

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

    ๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    for (์š”์†Œํƒ€์ž… ๋ณ€์ˆ˜๋ช… : ๋ฐฐ์—ด ๋˜๋Š” ์ปฌ๋ ‰์…˜) {
        // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ
    }
    
    int[] numbers = {1, 2, 3, 4, 5};
    for (int num : numbers) {
        System.out.println(num);
    }

     

    while ๋ฌธ

    ์กฐ๊ฑด์ด true์ธ ๋™์•ˆ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ• ์ง€ ๋ชจ๋ฅผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์•„์š”.

    while (์กฐ๊ฑด์‹) {
        // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ
    }
    
    int count = 0;
    while (count < 5) {
        System.out.println("count = " + count);
        count++;
    }
    ๐Ÿ’ก while๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง€์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์ •ํ™•ํžˆ ์„ค์ •ํ•˜๊ณ , ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

     

    do-while ๋ฌธ

    while๊ณผ ๊ฑฐ์˜ ๊ฐ™์ง€๋งŒ, ์กฐ๊ฑด์„ ๋‚˜์ค‘์— ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ‘‰ ์ตœ์†Œ ํ•œ ๋ฒˆ์€ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰๋˜๋Š” ํŠน์ง•์ด ์žˆ์–ด์š”.

    int num = 0;
    
    do {
        System.out.println("num = " + num);
        num++;
    } while (num < 3);
    ๐Ÿ’ก do-while์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์ข…์ข… ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค!

    โ›” ํ๋ฆ„ ์ œ์–ด ํ‚ค์›Œ๋“œ

    ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.

    break

    ๋ฐ˜๋ณต๋ฌธ์ด๋‚˜ switch ๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            break; // i๊ฐ€ 5์ผ ๋•Œ ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
        }
        System.out.println(i);
    }
    // 1, 2, 3, 4๋งŒ ์ถœ๋ ฅ๋จ

    continue

    ํ˜„์žฌ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๊ณ , ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            continue; // i๊ฐ€ ์ง์ˆ˜๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ
        }
        System.out.println(i);
    }
    // 1, 3, 5, 7, 9๋งŒ ์ถœ๋ ฅ๋จ

     

    ๐Ÿ“Œ   ๋ ˆ์ด๋ธ”(Label)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

    ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์—์„œ๋Š” ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ€์ƒ์œผ๋กœ break๋‚˜ continue๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    outer: // ๋ ˆ์ด๋ธ” ์ •์˜
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
            if (i * j > 4) {
                break outer; // outer ๋ ˆ์ด๋ธ”์ด ๋ถ™์€ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒ
            }
            System.out.println(i + " * " + j + " = " + (i * j));
        }
    }

    ๐Ÿ™Œ ๋งˆ๋ฌด๋ฆฌ

    ์˜ค๋Š˜์€ Java์˜ ์ œ์–ด๋ฌธ(์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ)๊ณผ ํ๋ฆ„ ์ œ์–ด ํ‚ค์›Œ๋“œ(break, continue)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ์ œ์–ด๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ๋กœ, ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

     

    ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    break์™€ continue ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์˜ ํ๋ฆ„์„ ๋”์šฑ ์ •๊ตํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” Java์˜ ๋ฐฐ์—ด๊ณผ ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด๋‚˜ ์ถ”๊ฐ€๋กœ ์•Œ๊ณ  ์‹ถ์€ ๊ฐœ๋…์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” ๐Ÿ˜Š

    ๋ฐ˜์‘ํ˜•