그만큼 Java의 스위치 문 다중 방향 분기 문입니다. 간단히 말해서 Java 스위치 문은 여러 조건에서 하나의 명령문을 실행합니다.
그것은 마치 if-else-if 사다리 진술. 표현식의 값을 기반으로 코드의 다른 부분에 실행을 전달하는 쉬운 방법을 제공합니다. 표현식은 다음과 같습니다. 바이트 , 짧은 , 숯 , 또는 정수 원시 데이터 유형. 여러 값에 대해 변수의 동등성을 테스트합니다.
메모: Java 스위치 표현식은 byte, short, int, long(Wrapper 유형 포함), 열거형 및 문자열이어야 합니다. JDK7부터는 열거 유형( 열거형 자바에서는) 끈 수업, 그리고 싸개 클래스.
통사론
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>예:
크기 프린터 예
자바 public class SizePrinter { public static void main(String[] args) { int sizeNumber = 2; // Replace with your desired size (1, 2, 3, 4, or 5) switch (sizeNumber) { case 1: System.out.println('Extra Small'); break; case 2: System.out.println('Small'); break; case 3: System.out.println('Medium'); break; case 4: System.out.println('Large'); break; case 5: System.out.println('Extra Large'); break; default: System.out.println('Invalid size number'); } } }> 산출:
Small>
Java Switch 문에 대한 몇 가지 중요한 규칙
- 조건 확인만 적용하는 경우는 얼마든지 있을 수 있지만 중복된 사례 값은 허용되지 않는다는 점을 기억하세요.
- 케이스 값은 스위치의 변수와 동일한 데이터 유형이어야 합니다.
- 케이스 값은 상수이거나 리터럴이어야 합니다. 변수는 허용되지 않습니다.
- break 문은 스위치 내부에서 명령문 시퀀스를 종료하는 데 사용됩니다.
- break 문은 선택 사항입니다. 생략하면 다음 케이스로 실행이 계속됩니다.
- 기본 문은 선택 사항이며 스위치 블록 내부 어디에나 나타날 수 있습니다. Case의 경우 끝이 아닌 경우에는 기본 문 뒤에 반드시 break 문을 유지하여 다음 Case 문의 실행을 생략해야 합니다.
Note: Until Java-6, switch case argument cannot be of String type but Java 7 onward we can use String type argument in Switch Case.>
Switch-Case 문의 흐름도
이 순서도는 스위치 문의 제어 흐름과 작동을 보여줍니다.

메모: Java 스위치 문은 fall through 문입니다. 즉, 다음과 같은 경우 모든 문을 실행합니다. 브레이크 키워드 는 사용되지 않으므로 각 경우마다 break 키워드를 사용하는 것이 매우 중요합니다.
예: 찾는 날
다음 Java 프로그램을 고려하면 값이 일(1-7)을 나타내는 int 이름의 day를 선언합니다. 이 코드는 switch 문을 사용하여 날짜 값에 따라 날짜 이름을 표시합니다.
자바 // Java program to Demonstrate Switch Case // with Primitive(int) Data Type // Class public class GFG { // Main driver method public static void main(String[] args) { int day = 5; String dayString; // Switch statement with int data type switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; // Case case 4: dayString = 'Thursday'; break; // Case case 5: dayString = 'Friday'; break; // Case case 6: dayString = 'Saturday'; break; // Case case 7: dayString = 'Sunday'; break; // Default case default: dayString = 'Invalid day'; } System.out.println(dayString); } }> 산출
Friday>
스위치 케이스 문에서 중단
ㅏ break 문 선택 사항입니다. 중단을 생략하면 다음 사례로 실행이 계속됩니다.
때로는 없이 여러 사례를 갖는 것이 바람직할 때도 있습니다. 부서지다 그들 사이의 진술. 예를 들어, 위 프로그램의 업데이트된 버전을 고려해 보겠습니다. 이 버전은 해당 날짜가 평일인지 주말인지도 표시합니다.
예:
여러 번의 중단이 없는 Switch 문 프로그램
산업과 공장자바
// Java Program to Demonstrate Switch Case // with Multiple Cases Without Break Statements // Class public class GFG { // main driver method public static void main(String[] args) { int day = 2; String dayType; String dayString; // Switch case switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; case 4: dayString = 'Thursday'; break; case 5: dayString = 'Friday'; break; case 6: dayString = 'Saturday'; break; case 7: dayString = 'Sunday'; break; default: dayString = 'Invalid day'; } switch (day) { // Multiple cases without break statements case 1: case 2: case 3: case 4: case 5: dayType = 'Weekday'; break; case 6: case 7: dayType = 'Weekend'; break; default: dayType = 'Invalid daytype'; } System.out.println(dayString + ' is a ' + dayType); } }> 산출
Tuesday is a Weekday>
Java 중첩 스위치 문
우리는 스위치 ~처럼 명령문 시퀀스의 일부 ~의 외부 스위치. 이것은 중첩 스위치 . switch 문은 해당 블록을 정의하므로 내부 스위치의 대소문자 상수와 외부 스위치의 대소문자 상수 간에 충돌이 발생하지 않습니다.
예:
중첩된 Switch 문
자바 // Java Program to Demonstrate // Nested Switch Case Statement // Class public class GFG { // Main driver method public static void main(String[] args) { // Custom input string String Branch = 'CSE'; int year = 2; // Switch case switch (year) { // Case case 1: System.out.println( 'elective courses : Advance english, Algebra'); // Break statement to hault execution here // itself if case is matched break; // Case case 2: // Switch inside a switch // Nested Switch switch (Branch) { // Nested case case 'CSE': case 'CCE': System.out.println( 'elective courses : Machine Learning, Big Data'); break; // Case case 'ECE': System.out.println( 'elective courses : Antenna Engineering'); break; // default case // It will execute if above cases does not // execute default: // Print statement System.out.println( 'Elective courses : Optimization'); } } } }> 산출
elective courses : Machine Learning, Big Data>
Switch 문의 Java Enum
열거형(enums)은 강력하고 명확한 방법입니다. 명명된 상수의 고정된 집합을 나타냅니다. 자바에서.
열거형은 유형 안전성과 가독성으로 인해 Switch 문에 사용됩니다.
예:
Switch에서 Enum 사용
자바 // Java Program to Illustrate Use of Enum // in Switch Statement // Class public class GFG { // Enum public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat } // Main driver method public static void main(String args[]) { // Enum Day[] DayNow = Day.values(); // Iterating using for each loop for (Day Now : DayNow) { // Switch case switch (Now) { // Case 1 case Sun: System.out.println('Sunday'); // break statement that hault further // execution once case is satisfied break; // Case 2 case Mon: System.out.println('Monday'); break; // Case 3 case Tue: System.out.println('Tuesday'); break; // Case 4 case Wed: System.out.println('Wednesday'); break; // Case 5 case Thu: System.out.println('Thursday'); break; // Case 6 case Fri: System.out.println('Friday'); break; // Case 7 case Sat: System.out.println('Saturday'); } } } }> 산출
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
Java Switch Case의 기본 문
Switch 케이스의 기본 케이스는 일치하는 케이스가 없을 때 실행할 코드를 지정합니다.
가능한 모든 Case의 마지막에 Default Case를 작성하는 것이 바람직하지만, switch 문의 어느 위치에나 작성할 수 있습니다.
예:
스위치 문 중간에 기본값 작성:
자바 /*package whatever //do not write package name here */ import java.io.*; class GFG { public static void main (String[] args) { int i=2; switch(i){ default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> 산출
2 3>
예:
스위치 문 시작 시 기본값 쓰기
자바 import java.io.*; class GFG { public static void main(String[] args) { int i = 5; switch (i) { default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> 산출
Default 1>
케이스 라벨 변형
Case 레이블과 스위치 인수는 상수 표현식일 수 있습니다. 스위치 인수는 변수 표현식일 수 있습니다.
예:
변수 스위치 인수를 사용합니다.
자바 import java.io.*; class GFG { public static void main(String[] args) { int x = 2; switch (x + 1) { case 1: System.out.println(1); break; case 1 + 1: System.out.println(2); break; case 2 + 1: System.out.println(3); break; default: System.out.println('Default'); } } }> 산출
3>
케이스 레이블은 변수 또는 변수 표현식일 수 없습니다. 상수 표현식이어야 합니다.
자바 import java.io.*; class GFG { public static void main(String[] args) { int x = 2; int y = 1; switch (x) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case x + y: System.out.println(3); break; default: System.out.println('Default'); } } }> ./GFG.java:16: error: constant expression required case x+y: ^ 1 error>
Switch 문의 Java 래퍼
Java는 4가지를 제공합니다. 래퍼 클래스 사용 방법: switch 문에 Integer, Short, Byte, Long을 사용합니다.
예:
스위치 케이스의 Java 래퍼.
자바 public class WrapperSwitchExample { public static void main(String[] args) { Integer age = 25; switch (age.intValue()) { // Extract primitive value for switch case 25: System.out.println('You are 25.'); break; case 30: System.out.println('You are 30.'); break; default: System.out.println('Age not matched.'); } } }> 산출:
You are 25.>
메모:
배치에 관계없이 기본 케이스는 다른 케이스 조건이 충족되지 않는 경우에만 실행됩니다. 따라서 시작, 중간 또는 끝에 배치해도 핵심 논리는 변경되지 않습니다(폴스루라는 덜 일반적인 기술을 사용하지 않는 한).
예: 이 코드에서는 (1-7) 숫자까지 평일을 식별합니다.
자바 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print('Enter a day number (1-7): '); int day = scanner.nextInt(); switch (day) { default: System.out.println('Not a valid weekday.'); break; case 1: System.out.println('It's Monday!'); break; case 2: System.out.println('It's Tuesday!'); break; case 3: System.out.println('It's Wednesday!'); break; case 4: System.out.println('It's Thursday!'); break; case 5: System.out.println('It's Friday!'); break; case 6: System.out.println('It's Saturday!'); break; case 7: System.out.println('It's Sunday!'); break; } } }> 산출
Enter a day number (1-7): 8 Not a valid weekday.>
더 읽어보기:
- Java에서 Enum 및 Switch 키워드 사용
- Java의 Switch Case 문자열
- 자바 튜토리얼
운동
Java 스위치 문을 연습하려면 다음 페이지를 방문하세요. 자바 스위치 Case문 연습
결론
Java의 Switch 문은 단일 표현식의 값을 기반으로 특정 코드 블록을 실행할 수 있는 제어 흐름 구조입니다. 프로그래밍에서 if-else-if 문의 대안으로 간주될 수 있습니다.
Java 스위치 설명 - FAQ
Java에서 스위치 문을 사용하는 방법
Java에서 스위치 문을 사용하려면 다음 구문을 사용할 수 있습니다.
스위치(표현식) {
사례 값1:
// 표현식이 value1과 같을 때 실행할 코드
부서지다;
사례 값2:
// 표현식이 value2와 같을 때 실행할 코드
부서지다;
// ... 더 많은 경우
기본:
// 위의 경우 중 일치하는 것이 없을 때 실행할 코드
}
스위치에 null을 전달할 수 있나요?
아니요, 스위치 문에는 상수 표현식이 필요하므로 NULL을 전달할 수 없습니다.
switch 문으로 돌아갈 수 있나요?
아니요, 스위치 문은 프로그램에서 제어 흐름을 구축하므로 스위치 케이스를 종료한 후에는 돌아갈 수 없습니다.