Java의 스위치 케이스란 무엇이며 어떻게 사용합니까?

게시 됨: 2022-03-04

Java switch case 는 프로그래밍 언어에 수행할 작업을 알려주는 많은 Java 문 중 하나입니다. 텍스트에 대한 완전한 아이디어를 제공하고 절을 포함하는 영어 문장과 마찬가지로 Java 문은 Java 인터프리터가 실행하는 하나 이상의 표현식을 포함하는 명령입니다. 간단히 말해서 Java 문은 어떤 일이 일어나야 하는지 설명하는 명령입니다.

Java 문은 세미콜론(;)으로 끝나고 해당 세미콜론까지 명령을 처리하도록 Java에 지시합니다. 기본적으로 Java 인터프리터는 명령문이 작성되는 순서를 따르고 명령문을 차례로 실행합니다. 그러나 루프 및 조건문과 같이 프로그램 흐름을 제어하는 ​​명령문(흐름 제어 명령문)은 기본 실행 순서를 따르지 않습니다. 이 기사에서는 이러한 유형의 선택 제어 메커니즘 중 하나인 Java switch case 문에 중점을 둡니다.

목차

Java에서 스위치 케이스는 무엇입니까?

Java는 세 가지 종류의 명령문을 지원합니다. 변수 값 변경, 메소드 호출 및 객체 생성을 위한 표현식 명령문, 변수 선언을 위한 선언문, 명령문의 실행 순서를 결정하기 위한 제어 흐름 명령문입니다.

Java switch case 문 표현식 또는 변수의 값이 다방향 분기를 통해 프로그램 실행의 제어 흐름을 변경할 수 있도록 하는 제어 흐름 문의 유형입니다. if-then 및 if-then-else 문과 달리 Java switch 문에는 여러 실행 경로가 있습니다. Java의 대소문자 전환 은 short, byte, int 및 char 기본 데이터 유형에서 작동합니다. JDK7부터 Java 스위치는 String 클래스, 열거형 및 Byte, Character, Integer 및 Short와 같은 기본 데이터 유형을 래핑하는 래퍼 클래스와 함께 사용할 수도 있습니다.

Java에서 switch case 문의 본문을 switch 블록이라고 합니다. switch 블록의 모든 문에는 하나 이상의 케이스 또는 기본 레이블을 사용하여 레이블이 지정됩니다. 따라서 switch 문은 표현식을 평가한 다음 일치하는 case 레이블을 따르는 모든 명령문을 실행합니다.

다음은 switch case 문의 구문입니다.

// switch 문

스위치(표현식)

{

// 케이스 문

// 값은 동일한 유형의 표현식이어야 합니다.

케이스 값1 :

// 문

부서지다; // 중단은 선택 사항입니다.

케이스 값2 :

// 문

부서지다; // 중단은 선택 사항입니다.

// 어떤 수의 case 문도 가질 수 있습니다.

// 아래는 어떤 경우도 참이 아닐 때 사용되는 기본 문입니다.

// 기본 경우에는 break가 필요하지 않습니다.

기본 :

// 문

}

Java switch 문의 예

다음 Java 코드 예제에서는 값이 해당 연도의 12개월 중 하나를 나타내는 "month"라는 int를 선언합니다. 이 코드는 switch case 문을 사용하여 월 값을 기반으로 월 이름을 표시합니다.

공개 클래스 SwitchExample {

공개 정적 무효 메인(문자열[] 인수) {

정수 월 = 6;

문자열 월 문자열;

스위치(월) {

사례 1: monthString = "1월";

부서지다;

사례 2: monthString = "2월";

부서지다;

사례 3: monthString = "3월";

부서지다;

사례 4: monthString = "4월";

부서지다;

사례 5: monthString = "5월";

부서지다;

사례 6: monthString = "6월";

부서지다;

사례 7: monthString = "7월";

부서지다;

사례 8: monthString = "8월";

부서지다;

사례 9: monthString = "9월";

부서지다;

사례 10: monthString = "10월";

부서지다;

사례 11: monthString = "11월";

부서지다;

사례 12: monthString = "12월";

부서지다;

기본값: monthString = "잘못된 월";

부서지다;

}

System.out.println(monthString);

}

}

출력: 6월

Java 스위치 케이스에서 break 문의 목적

break 문은 둘러싸는 switch 문을 종료하는 Java switch 경우의 필수 측면입니다. break 문이 없으면 switch 블록의 문이 통과할 수 있으므로 break 문이 필요합니다. 따라서 후속 case 레이블의 표현에 관계없이 일치하는 case 레이블 이후의 모든 명령문이 break 문을 만날 때까지 순차적으로 실행됩니다.

다음 코드는 break 문이 없을 때 switch 블록이 통과하는 것을 보여주는 예입니다.

공개 클래스 SwitchExampleFallThrough {

공개 정적 무효 메인(문자열[] 인수) {

java.util.ArrayList<문자열> futureMonths =

새로운 java.util.ArrayList<문자열>();

정수 월 = 6;

스위치(월) {

사례 1: futureMonths.add("1월");

사례 2: futureMonths.add("2월");

사례 3: futureMonths.add("3월");

사례 4: futureMonths.add("4월");

사례 5: futureMonths.add("5월");

사례 6: futureMonths.add("6월");

사례 7: futureMonths.add("7월");

사례 8: futureMonths.add("8월");

사례 9: futureMonths.add("9월");

사례 10: futureMonths.add("10월");

사례 11: futureMonths.add("11월");

사례 12: futureMonths.add("12월");

부서지다;

기본값: 중단;

}

if (futureMonths.isEmpty()) {

System.out.println("잘못된 월 번호");

} 또 다른 {

(문자열 월 이름 : futureMonths) {

System.out.println(월명);

}

}

}

}

산출:

6 월

칠월

팔월

구월

십월

십일월

12 월

위의 코드는 정수 월에 해당하는 연도의 월과 그 뒤에 오는 월을 표시합니다. 여기서 마지막 break 문은 흐름이 switch 문을 벗어나기 때문에 아무 소용이 없습니다. break 문을 사용하면 오류가 발생하기 쉬운 코드와 수정이 더 쉬워지기 때문에 유용합니다. 코드의 기본 섹션은 케이스 섹션에 의해 규제되지 않는 모든 값을 처리합니다.

여러 케이스 레이블이 있는 Java 스위치 문

Java의 Switch 문에는 여러 case 레이블도 있을 수 있습니다. 다음 코드는 동일한 것을 보여줍니다. 여기에서 특정 월의 일 수가 계산됩니다.

클래스 SwitchMultiple{

공개 정적 무효 메인(문자열[] 인수) {

정수 월 = 2;

정수 연도 = 2020;

정수 numDays = 0;

스위치(월) {

사례 1: 사례 3: 사례 5:

케이스 7: 케이스 8: 케이스 10:

사례 12:

numDays = 31;

부서지다;

사례 4: 사례 6:

사례 9: 사례 11:

numDays = 30;

부서지다;

사례 2:

if (((연도 % 4 == 0) &&

!(연도 % 100 == 0))

|| (연도 % 400 == 0))

numDays = 29;

또 다른

numDays = 28;

부서지다;

기본:

System.out.println("잘못된 월입니다.");

부서지다;

}

System.out.println("일수 = "

+ numDays);

}

}

산출:

일 수 = 29

중첩된 Java 스위치 케이스 문

중첩된 스위치는 외부 스위치의 명령문 시퀀스의 일부로 스위치를 사용하는 경우입니다. 이 경우 switch 문은 자체 블록을 정의하므로 다른 스위치의 case 상수와 내부 스위치의 case 상수 간에 충돌이 없습니다.

다음 예는 중첩된 Java switch-case 문의 사용을 보여줍니다.

공개 클래스 TestNest {

공개 정적 무효 메인(String[] 인수)

{

문자열 분기 = "CSE";

정수 연도 = 2;

스위치(연도) {

사례 1:

System.out.println("선택 과목: 대수, 고급 영어");

부서지다;

사례 2:

switch (분기) // 중첩 스위치

{

사례 "CSE":

사례 "CCE":

System.out.println("선택과목 : 빅데이터, 머신러닝");

부서지다;

케이스 "ECE":

System.out.println("선택과목 : 안테나 공학");

부서지다;

기본:

System.out.println("선택 과목 : 최적화");

}

}

}

}

산출:

선택 과목: 빅 데이터, 머신 러닝

switch 문에서 문자열 사용

JDK7부터는 switch 문의 표현식에서 String 객체를 사용할 수 있습니다. switch 문의 표현에 있는 문자열 개체를 각 case 레이블의 연결된 표현과 비교하면 마치 String.equals 메서드를 사용하는 것과 같습니다. 또한 switch 문 표현식에서 문자열 개체의 비교는 대소문자를 구분합니다.

다음 코드 예제에서는 "game"이라는 문자열 값을 기반으로 게임 유형을 표시합니다.

공개 클래스 StringInSwitchStatementExample {

공개 정적 무효 메인(문자열[] 인수) {

스트링 게임 = "크리켓";

스위치(게임){

사례 "배구": 사례"축구": 사례"크리켓:

System.out.println("야외 게임입니다.");

부서지다;

케이스"카드 게임": 케이스"체스": 케이스"퍼즐": 케이스"실내 농구":

System.out.println("실내 게임입니다.");

부서지다;

기본:

System.out.println("어떤 게임인가요?");

}

}

}

산출:

이것은 야외 게임입니다

Java switch 문을 사용할 때 기억해야 할 규칙

Java switch 을 사용하는 동안 특정 규칙을 염두에 두는 것이 가장 좋습니다 . 다음은 동일한 목록입니다.

  • 케이스 값과 스위치의 변수는 데이터 유형이 같아야 합니다.
  • Java 스위치 문은 중복된 대소문자 값을 허용하지 않습니다.
  • 케이스 값은 리터럴 또는 상수여야 합니다. 변수는 허용되지 않습니다.
  • 스위치 내에서 break 문을 사용하면 명령문 시퀀스가 ​​종료됩니다.
  • break 문은 선택 사항이며 생략하면 후속 사례로 계속 실행됩니다.
  • default 문도 선택 사항이며 switch 블록 내에서 어디에서나 발생할 수 있습니다. 끝에 배치되지 않은 경우 기본 문 뒤에 break 문을 추가하여 후속 case 문의 실행을 건너뛰어야 합니다.

앞으로의 길

Java는 프로그래머와 개발자 사이에서 타의 추종을 불허하는 인기를 누리고 있으며 오늘날 가장 수요가 많은 프로그래밍 언어 중 하나입니다. 말할 필요도 없이, 끊임없이 진화하는 직업 시장에 대한 기술을 향상시키고자 하는 신진 개발자와 소프트웨어 엔지니어는 Java 기술에 대한 기반을 확보해야 합니다.

소프트웨어 엔지니어링에서 upGrad의 Job-linked PG 인증은 코딩을 배우고 초급 소프트웨어 역할에 배치되기를 원하는 신입생 및 최종 학년 지원자를 위해 특별히 고안되었습니다.

5개월간의 온라인 과정이 무엇을 수반하는지 궁금하시다면, 다음은 아이디어를 제공할 몇 가지 주요 사항입니다.

  • MERN 스택 및 클라우드 네이티브 전문 분야 획득
  • Java, DSA, CSS3, HTML5, AWS, MERN, SQL 및 NoSQL 데이터베이스 등과 같은 최고의 기술을 배우십시오.
  • 350시간 이상의 실습 교육과 500시간 이상의 콘텐츠
  • 5개의 산업 프로젝트 및 50개 이상의 라이브 세션
  • 배치 준비 및 진로 지도
  • 토론 포럼 및 강력한 동료 네트워크

소프트웨어 엔지니어링 분야에서 유망한 직업을 향한 여정을 시작하고 싶다면 여기 최고로부터 배울 수 있는 기회가 있습니다.

1. switch 문의 경우는 무엇입니까?

Java의 switch 문을 사용하면 값 목록에 대한 변수의 동등성을 테스트할 수 있습니다. 여기에서 각각의 값을 케이스라고 하며, 각각의 케이스에 대해 스위치가 켜진 변수를 확인한다.

2. 스위치 케이스의 장점은 무엇입니까?

전통적인 if-else 캐스케이드에 비해 Java switch case 문의 주요 이점은 전자를 통해 프로그래머가 더 간결하고 명확하며 가독성 높은 코드를 작성할 수 있다는 것입니다. 반면에 if-else 문은 종종 많은 코드 반복을 포함합니다. 따라서 코드의 특정 부분을 변경하려면 다른 위치에서 변경해야 합니다. 시간이 많이 걸리고 오류가 발생하기 쉬운 프로세스를 피하려면 스위치 케이스를 사용하는 것이 더 현명합니다.

3. 스위치 케이스와 if-else의 차이점은 무엇입니까?

switch 문의 경우 break 키워드를 만나거나 기본 문이 실행될 때까지 케이스가 차례로 차례로 실행됩니다. 반대로 if-else 문의 경우 조건에 따라 'if' 또는 'else' 블록이 실행됩니다.