CASE
다음과 같이 두 가지 진술을 모두 사용할 수 있습니다 .
case text1:
case text4:{
//blah
break;
}
이 예 참조 : 코드 예는 특정 달의 일 수를 계산합니다.
class SwitchDemo {
public static void main(String[] args) {
int month = 2;
int year = 2000;
int numDays = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;
case 2:
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
System.out.println("Number of Days = "
+ numDays);
}
}
이것은 코드의 출력입니다.
Number of Days = 29
실패로 끝나다:
또 다른 관심 지점은 브레이크 선언입니다. 각 break 문은 둘러싸는 switch 문을 종료합니다. 제어 흐름은 스위치 블록 다음에 오는 첫 번째 명령문으로 계속됩니다. 스위치 블록에 명령문이 없으면 break 문이 필요 fall
through
합니다. 일치하는 case 레이블 뒤의 모든 명령문은 break case가 나타날 때까지 후속 케이스 레이블의 표현식에 관계없이 순서대로 실행됩니다.
예제 코드 :
public class SwitchFallThrough {
public static void main(String[] args) {
java.util.ArrayList<String> futureMonths =
new java.util.ArrayList<String>();
int month = 8;
switch (month) {
case 1: futureMonths.add("January");
case 2: futureMonths.add("February");
case 3: futureMonths.add("March");
case 4: futureMonths.add("April");
case 5: futureMonths.add("May");
case 6: futureMonths.add("June");
case 7: futureMonths.add("July");
case 8: futureMonths.add("August");
case 9: futureMonths.add("September");
case 10: futureMonths.add("October");
case 11: futureMonths.add("November");
case 12: futureMonths.add("December");
default: break;
}
if (futureMonths.isEmpty()) {
System.out.println("Invalid month number");
} else {
for (String monthName : futureMonths) {
System.out.println(monthName);
}
}
}
}
이것은 코드의 출력입니다.
August
September
October
November
December
스위치 명령문에서 문자열 사용
Java SE 7 이상에서는 switch 문의 표현식에 String 객체를 사용할 수 있습니다. 다음 코드 예제는 month라는 문자열 값을 기준으로 월 수를 표시합니다.
public class StringSwitchDemo {
public static int getMonthNumber(String month) {
int monthNumber = 0;
if (month == null) {
return monthNumber;
}
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}
return monthNumber;
}
public static void main(String[] args) {
String month = "August";
int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) {
System.out.println("Invalid month");
} else {
System.out.println(returnedMonthNumber);
}
}
}
이 코드의 출력은 8입니다.
자바 문서에서