一、if
public static void main(String[] args) {
/*
* 根据输入的数字,返回对应的星期几
*/
int week = 4;// 网页、键盘等,既要按照正常的流程执行,也要考虑到一点意外的情况(健壮性)
// 缺点:繁琐、而且会每个条件分句都进行了判断(消耗大)
if (week == 1) {
System.out.println(week + "对应中文是星期一");
}
if (week == 2) {
System.out.println(week + "对应中文是星期二");
}
if (week == 3) {
System.out.println(week + "对应中文是星期三");
}
if (week == 4) {
System.out.println(week + "对应中文是星期四");
}
if (week == 5) {
System.out.println(week + "对应中文是星期五");
}
if (week == 6) {
System.out.println(week + "对应中文是星期六");
}
if (week == 7) {
System.out.println(week + "对应中文是星期日");
} else {
System.out.println("没有对应的星期");
}
// 缺点:繁琐,但是一般碰到满足条件的分句,即不再继续判断(else if的作用)
if (week == 1) {
System.out.println(week + "对应中文是星期一");
} else if (week == 2) {
System.out.println(week + "对应中文是星期二");
} else if (week == 3) {
System.out.println(week + "对应中文是星期三");
} else if (week == 4) {
System.out.println(week + "对应中文是星期四");
} else if (week == 5) {
System.out.println(week + "对应中文是星期五");
} else if (week == 6) {
System.out.println(week + "对应中文是星期六");
} else if (week == 7) {
System.out.println(week + "对应中文是星期日");
} else {
System.out.println("没有对应的星期");
}
/*
* 一年有四季: 春:3,4,5 夏:6,7,8 秋:9,10,11 冬:12,1,2
*
* 类似于以上的每个月份1个if判断也可以,但: 写程序比较重要的一点:提高代码复用性 将多条件进行合并(如何合并,用条件运算符)
*/
int month = 12;
if (month == 3 || month == 4 || month == 5) {
System.out.println(month + "月是春季");
} else if (month == 6 || month == 7 || month == 8) {
System.out.println(month + "月是夏季");
} else if (month == 9 || month == 10 || month == 11) {
System.out.println(month + "月是秋季");
} else if (month == 12 || month == 1 || month == 2) {
System.out.println(month + "月是冬季");
} else {
System.out.println("不合理的月份输入");
}
if (month > 12 || month < 1) {
System.out.println("没有对应的月份");
} else if (month >= 3 && month <= 5) {
System.out.println(month + "月是春季");
} else if (month >= 6 && month <= 8) {
System.out.println(month + "月是夏季");
} else if (month >= 9 && month <= 11) {
System.out.println(month + "月是秋季");
} else {
System.out.println(month + "月是冬季");
}
}
二、switch
public static void main(String[] args) {
// switch类似于选择题,根据题目选择答案
//// 如果没有break,找到答案之后,下面不再进行判断,继续执行,直至遇到break或者结束switch方法结束的标志}
int x = 2;
switch (x) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
default:
System.out.println("其它值");
}
/*
if例子中的由月份找季节
*/
int month = 15;
if (month >= 1 && month <= 12) {
switch (month) {
case 3:
case 4:
case 5:
System.out.println(month + "月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month + "月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month + "月是秋季");
default:
System.out.println(month + "月是冬季");
}
}else{
System.out.println("输入的月份是不合理的");
}
}
三、if与switch的比较
if:
1、对具体的值进行判断
2、对区间进行判断
3、对运算结果是boolean类型的表达式进行判断
switch:
1、对具体的值进行判断,但值的个数是确定的
2、对于只有几个固定的值进行判断时,建议使用switch语句(会将答案都加载如内存,效率相对高)
3、实际开发中,一般不怎么用switch,因为其使用比较有限