Java Switch语句
Java
switch语句从多个条件中执行一条语句。就像
if-else-if 阶梯语句。 switch语句适用于字节,短型,整型,长型,枚举类型,字符串和某些包装类型,如byte, short, int, long。从Java 7开始,您可以在switch语句中使用字符串。
换句话说,switch语句针对多个值测试变量的相等性。
Java Switch要记住的要点
Switch表达式可以有一个或N个个案值。
case值只能是switch表达式类型。大小写值必须为文字或常量。它不允许变量。
案例值必须为唯一。如果值重复,则会产生编译时错误。
Java Switch表达式必须为 byte,short,int,long(具有Wrapper类型),枚举和字符串。
每个case语句可以有一个 break语句,这是可选的。当控件到达break语句时,它将在switch表达式后跳转控件。如果未找到break语句,则执行下一种情况。
案例值可以具有默认标签,该标签是可选的。
语法:
switch(expression){
case value1:
//code to be executed;
break;
//optionalcase value2:
//code to be executed;
break;
//optional...... default: code to be executed if all cases are not matched;
}
示例:
public class SwitchExample {
public static void main(String[] args) {
//Declaring a variable for switch expression int number=20;
//switch expression switch(number){
//case statements case 10: System.out.println("10");
break;
case 20: System.out.println("20");
break;
case 30: System.out.println("30");
break;
//default case statement default:System.out.println("Not in 10, 20 or 30");
}
}
}
输出:
查找月份示例:
public class SwitchMonthExample {
public static void main(String[] args) {
//Specifying month number int month=7;
String monthString="";
//switch statement switch(month){
//case statements within the switch block case 1: monthString="1 - January";
break;
case 2: monthString="2 - February";
break;
case 3: monthString="3 - March";
break;
case 4: monthString="4 - April";
break;
case 5: monthString="5 - May";
break;
case 6: monthString="6 - June";
break;
case 7: monthString="7 - July";
break;
case 8: monthString="8 - August";
break;
case 9: monthString="9 - September";
break;
case 10: monthString="10 - October";
break;
case 11: monthString="11 - November";
break;
case 12: monthString="12 - December";
break;
default:System.out.println("Invalid Month!");
}
//Printing month of the given number System.out.println(monthString);
}
}
输出:
检查元音或辅音的程序:
如果字符是A,E,I,O或U,则为元音,否则为辅音。它不区分大小写。
public class SwitchVowelExample {
public static void main(String[] args) {
char ch='O';
switch(ch) {
case 'a': System.out.println("Vowel");
break;
case 'e': System.out.println("Vowel");
break;
case 'i': System.out.println("Vowel");
break;
case 'o': System.out.println("Vowel");
break;
case 'u': System.out.println("Vowel");
break;
case 'A': System.out.println("Vowel");
break;
case 'E': System.out.println("Vowel");
break;
case 'I': System.out.println("Vowel");
break;
case 'O': System.out.println("Vowel");
break;
case 'U': System.out.println("Vowel");
break;
default: System.out.println("Consonant");
}
}
}
输出:
Java Switch语句是直通的
Java switch语句是直通的。这意味着如果没有break语句,它将在第一个匹配项之后执行所有语句。
示例:
public class SwitchExample2 {
public static void main(String[] args) {
int number=20;
//switch expression with int value switch(number){
//switch cases without break statements case 10: System.out.println("10");
case 20: System.out.println("20");
case 30: System.out.println("30");
default:System.out.println("Not in 10, 20 or 30");
}
}
}
输出:
带有字符串的Java Switch语句
自Java SE 7开始,Java允许我们在Switch表达式中使用字符串。case语句应为字符串文字。
示例:
public class SwitchStringExample {
public static void main(String[] args) {
//Declaring String variable String levelString="Expert";
int level=0;
//Using String in switch expression switch(levelString){
//Using String Literal in switch case case "Beginner": level=1;
break;
case "Intermediate": level=2;
break;
case "Expert": level=3;
break;
default: level=0;
break;
}
System.out.println("Your Level is: "+level);
}
}
输出:
Java嵌套Switch语句
我们可以在Java中的其他switch语句中使用switch语句。这就是嵌套的switch语句。
示例:
public class NestedSwitchExample {
public static void main(String args[]) {
//C - CSE, E - ECE, M - Mechanical char branch = 'C';
int collegeYear = 4;
switch( collegeYear ) {
case 1: System.out.println("English, Maths, Science");
break;
case 2: switch( branch ) {
case 'C': System.out.println("Operating System, Java, Data Structure");
break;
case 'E': System.out.println("Micro processors, Logic switching theory");
break;
case 'M': System.out.println("Drawing, Manufacturing Machines");
break;
}
break;
case 3: switch( branch ) {
case 'C': System.out.println("Computer Organization, MultiMedia");
break;
case 'E': System.out.println("Fundamentals of Logic Design, Microelectronics");
break;
case 'M': System.out.println("Internal Combustion Engines, Mechanical Vibration");
break;
}
break;
case 4: switch( branch ) {
case 'C': System.out.println("Data Communication and Networks, MultiMedia");
break;
case 'E': System.out.println("Embedded System, Image Processing");
break;
case 'M': System.out.println("Production Technology, Thermal Engineering");
break;
}
break;
}
}
}
输出:
Data Communication and Networks, MultiMedia
Switch语句中的Java枚举
Java允许我们在switch语句中使用枚举。
示例:
public enum Day {
Sun, Mon, Tue, Wed, Thu, Fri, Sat }
public static void main(String args[]) {
Day[] DayNow = Day.values();
for (Day Now : DayNow) {
switch (Now) {
case Sun: System.out.println("Sunday");
break;
case Mon: System.out.println("Monday");
break;
case Tue: System.out.println("Tuesday");
break;
case Wed: System.out.println("Wednesday");
break;
case Thu: System.out.println("Thursday");
break;
case Fri: System.out.println("Friday");
break;
case Sat: System.out.println("Saturday");
break;
}
}
}
}
输出:
SundayMondayTwesdayWednesdayThursdayFridaySaturday
Switch语句中的Java包装器
Java允许我们在switch语句中使用四个包装器类: Byte,Short,Integer和Long。
示例:
public class WrapperInSwitchCaseExample {
public static void main(String args[]) {
Integer age = 18;
switch (age) {
case (16): System.out.println("You are under 18.");
break;
case (18): System.out.println("You are eligible for vote.");
break;
case (65): System.out.println("You are senior citizen.");
break;
default: System.out.println("Please give the valid age.");
break;
}
}
}
输出:
You are eligible for vote.