switch case什么时候用?

Posted on 2016-06-07 11:57  上善其若水,厚德载物  阅读(833)  评论(0编辑  收藏  举报

第一个问题:什么时候用switch‘多分枝机构,当需要用多个if else的时候可以用switch case

case星球score分数,支持横向分类,纵向对待

public static void main(String[] args) {

Scanner s = new Scanner(System.in);
System.out.println("请输入学生星球:");
String star = s.nextLine();

System.out.println("请输入学生分数:");
String score = s.nextLine();
int sco = Integer.valueOf(score).intValue();

switch (star) {

case "地球":
if (sco > 90) {
System.out.println("发1000奖学金");
} else {
System.out.println("发800奖学金");
}
;
break;
case "月球":
if (sco > 90) {
System.out.println("发10斤月饼");
} else {
System.out.println("发8斤月饼");
}
break;
case "木星":
if (sco > 90) {
System.out.println("发10斤钻石");
} else {
System.out.println("发8斤钻石");
}

 

第二个问题,case内定义变量,要在冒号后加{}

如果想在某个case里定义一个变量:
switch (formWay)
{
case 1 :
int a=2; //错误。由于case不明确的范围,编译器无法在此处定义一个变量。
...
case 2 :
...

}
在这种情况下,加上{}可以解决问题。
switch (formWay)
{
case 1 :
{ 
int a=2; //正确,变量a被明确限定在当前{}范围内。
...
 } 
case 2 :
...
}

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入学生省份:");
String province = s.nextLine();

switch (province) {
case "河北": {
int a = 13;
System.out.println("case内定义变量要加{}" + a);
}
;
break;
case "山东":
{
char c = 'x';
System.out.println("case内定义变量要加{}"+ c);
};break;

case "湖南":
{
short b = 100;
System.out.println("case内定义变量要加{}"+b);
};
break;

case "广州":
{
Date d = new Date();
System.out.println("case内定义变量要加{}"+d);
}
break;

default :
{
Pelpel p = new Pelpel();
p.setAge(20);
p.setSex(1);
System.out.println("case内定义变量要加{}\t 年龄:"+ p.getAge()+"\t性别:"+p.getSex());
}

 

Copyright © 2024 上善其若水,厚德载物
Powered by .NET 9.0 on Kubernetes