概述
一、语法
switch(表达式){
case 值1:
//执行语句
break;
case 值2;
//执行语句
break;
...
default :
//执行语句
break;
}
说明:
①表达式的结果类型只能为:byte,short,int,char,String(jdk7新增支持),枚举(jdk5新增支持)
②表达式结果的类型要与case后值的类型一致
③default是可选的
④break可选的,表达式返回结果与case值匹配成功后,依法向下执行,直到遇到break。
二、应用
1、从键盘分别输入年月日,判断这一天是当年的第几天
//从键盘分别输入年月日,判断这一天是当年的第几天
//注:判断闰年的条件:1)被4整除,但不能被100整除;2)被400整除
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
System.out.print("请输入月份:");
int month = scanner.nextInt();
System.out.print("请输入日:");
int day = scanner.nextInt();
int sum = 0;
switch (month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
case 2:
sum += 31;
case 1:
sum += day;
}
System.out.println(sum);
注意:
1、主要是理解逻辑,问不能顺着写呢?
2、scanner不能直接支持char类型
转换:
Scanner s=new Scanner(System.in);
char b =s.next().charAt(0);
3、if else实现方式(待亲测)
public class test14{
public static void main(String[] args){
//int year=2018,month=9,day=30;
result(2018,9,30);//可以设置成键盘或其他方式输入。
}
private static void result(int year,int month,int day){
int data=30*(month-1)+day;
//先按标准30天相加。
//13578 10
12月
31天
if(month>=11){
//
11.10
前面13578
10月都要加一天
data=data+6-2;
//
加之前所有31号的6天,减去二月多加的两天(平年二月28天)
}else if(month>=9){
//
9.15
前面13578
各加一天
data=data+5-2;
}else if(month>=8){
data=data+4-2;
}else if(month>=6){
data=data+3-2;
}else if(month>=4){
data=data+2-2;
}else if(month==3){
//三月减二月多算的2天。
data=data+1-2;
}else if(month==2){
//二月几号直接由day决定,不用减2天。
data=data+1;
//1月31天,加1天。
}
//判断当前是否是闰年(闰年能被4整除但不能被100整除)
if(year%4==0&&year%100!=0){
//闰年二月加一天
data++;
System.out.print(year+"年"+month+"月"+day+"日是"+year+"年"+"第"+data+"天");
}else{
System.out.print(year+"年"+month+"月"+day+"日是"+year+"年"+"第"+data+"天");
}
};
}
此段代码参考https://blog.csdn.net/weixin_43311389/article/details/82914062
三、总结
1、可以用switch case的,都可以用if else,反之不成立
2、两种情况都可以使用时,而且case的值不多的时候,优先使用switch case ,因为其效率略高。
最后
以上就是多情舞蹈为你收集整理的Java学习之选择结构 【switch case】的全部内容,希望文章能够帮你解决Java学习之选择结构 【switch case】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复