格式:
分支结构之二:switch-case
格式
switch (表达式){
case常量:
执行语句
//break;可省了
case 常量2:
执行语句;
//break; 可省了
...
dfault:
执行语句;
}
说明:
根据Switch表达式中的值。依次匹配各个case中的常量,一旦匹配成功,则进入case结构中,调其执行语句
当调用完执行语句以后,则仍往下执行其他case里的语句,直到遇到break关键字或者switch - case结构末尾止结束;
break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
switch结构中表达式,只能是如下六种数据类型之一
byte 、short 、char 、int 、枚举类型(JDK1.5新增)、String类型(JDK7.0新增)
示例
public class HelloWorld {
public static void main(String[] args) {
int number = 2;
switch (number){
case 0:
System.out.println("zero");
break;
case 2:
System.out.println("one");
break;//执行后会打断后续执行流程
case 3:
System.out.println("two");
break;
default:
System.out.println("other");
}
}
}
测试
one
示例2
public class HelloWorld {
public static void main(String[] args) {
int number = 2;
switch (number){
case 0:
System.out.println("zero");
//break;
case 2:
System.out.println("one");
//break;
case 3:
System.out.println("two");
//break;
default:
System.out.println("other");
}
}
}
测试
one
two
other
综合代码测试
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int number = 2;
switch (number) {
case 0:
System.out.println("zero");
break;
case 2:
System.out.println("one");
break;
case 3:
System.out.println("two");
break;
default:
System.out.println("other");
}
// 获取char 类型变量,Scanner没有相关方法,只能获取一个字符串
System.out.println("请输入您的性别:");
String gender = scan.next();
char genderChar = gender.charAt(0);//转换成char类型的操作;获取索引为0 为真上的字符
System.out.println(genderChar);
System.out.println("请输入字符:");
String Char = scan.next();
//char cha = Char.charAt(0);
switch (Char) {
case "a":
System.out.println("A");
break;
case "b":
System.out.println("B");
break;
case "c":
System.out.println("C");
break;
case "d":
System.out.println("D");
break;
case "e":
System.out.println("E");
break;
default:
System.out.println("other");
}
System.out.println("请输入成绩:");
int score = scan.nextInt();
switch (score/10) {//对10 取模
case 0:
//System.out.println("不及格:");
//break;
case 2:
//System.out.println("不及格");
//break;
case 3:
//System.out.println("不及格");
//break;
case 4:
//System.out.println("不及格");
//break;
case 5:
System.out.println("不及格");
break;
case 6:
//System.out.println("及格");
//break;
case 7:
//System.out.println("及格");
//break;
case 8:
//System.out.println("及格");
//break;
case 9:
//System.out.println("及格");
//break;
case 10:
System.out.println("及格");
break;
default:
System.out.println("输入的不正确");
}
System.out.println("请输入你家狗狗年龄:");
int dogage = scan.nextInt();
if (dogage < 0) {
System.out.println("狗狗未出生");
} else if (dogage <= 2) {
System.out.println(dogage * 10.2);
} else {
System.out.println((dogage-2)*5+2*10.2);
}
System.out.println("请输入月份");
int month = scan.nextInt();
System.out.println("请输入几号:");
int day = scan.nextInt();
int sumdays = 0;
switch (month){
case 12:
sumdays += 30;
case 11:
sumdays += 31;
case 10:
sumdays += 30;
case 9:
sumdays += 31;
case 8:
sumdays += 31;
case 7:
sumdays += 30;
case 6:
sumdays += 31;
case 5:
sumdays += 30;
case 4:
sumdays += 31;
case 3:
sumdays += 28;
case 2:
sumdays += 31;
case 1:
sumdays += day;
default:
System.out.println("是今年第"+sumdays+"天");
}
}
}
测试
one
请输入您的性别:
n
n
请输入字符:
a
A
请输入成绩:
60
及格
请输入你家狗狗年龄:
8
50.4
请输入月份
9
请输入几号:
17
是今年第260天