SWITCH

switch

switch (์กฐ๊ฑด์‹) {

case ๊ฐ’1:

์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’1๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ;

break;

case ๊ฐ’2:

์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’2์™€ ๊ฐ™์„ ๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ;

break;

....

default:

์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” case ๋ฌธ์ด ์—†์„ ๋•Œ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ;

}

  • ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์„ ๋•Œ ์œ ์šฉํ•œ ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค.

  • break; ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์ง€ ์•Š์œผ๋ฉด switch ๋ฌธ ๋๊นŒ์ง€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

  • default ๋ฌธ์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • if ์กฐ๊ฑด๋ฌธ๊ณผ ๋น„๊ตํ•ด๋ณด๋ฉด if ๋Š” ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์— true/false ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  switch ๋Š” ์ •์ˆ˜๋‚˜ ๋ฌธ์ž์—ด ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์‹คํ–‰ ํ๋ฆ„ ํ™•์ธํ•˜๊ธฐ

    1. ์กฐ๊ฑด์‹์„ ๊ณ„์‚ฐํ•œ๋‹ค.

    2. ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” case ๋ฌธ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

    3. ํ•ด๋‹น case ๋ฌธ์˜ ๋ฌธ์žฅ๋“ค์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    4. break; ๋ฅผ ๋งŒ๋‚˜๊ฑฐ๋‚˜ switch ๋ฌธ์ด ๋๋‚˜๋ฉด switch ๋ฌธ ์ „์ฒด๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

switch ๋ฌธ์˜ ์ œ์•ฝ์กฐ๊ฑด

  1. switch ๋ฌธ์˜ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜ ๋˜๋Š” ๋ฌธ์ž์—ด ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. case ๋ฌธ์˜ ๊ฐ’์€ ์ •์ˆ˜ ์ƒ์ˆ˜(๋ฌธ์ž ํฌํ•จ), ๋ฌธ์ž์—ด ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

int num, result;

final int ONE = 1;

switch (result) {

case '1': // OK. ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด(์ •์ˆ˜ 49์™€ ๋™์ผ)

case ONE: // OK. ์ •์ˆ˜ ์ƒ์ˆ˜

case "YES" // OK. ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

case num: // Error. ๋ณ€์ˆ˜๋Š” ๋ถˆ๊ฐ€๋Šฅ

case 1.0: // Error. ์‹ค์ˆ˜๋„ ๋ถˆ๊ฐ€๋Šฅ

}

  • ์•„๋ž˜ ์˜ˆ์ œ์ฝ”๋“œ๋กœ ํ•™์Šตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

class Control2_1 {
    public static void main(String[] args) {
        int month = 8;
        String monthString = "";
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            case 0: case 13:
                     System.out.println("์ด๋Ÿฐ์‹์œผ๋กœ case ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.");
                     break;
            case 15:
            default: monthString = "Invalid month";
        }
        System.out.println(monthString);
    }
}

Ref. Java์˜ ์ •์„ ๊ธฐ์ดˆํŽธ Chapter4(9, 10. 11)

Ref. switch

Last updated