黑马程序员技术交流社区
标题:
switch和if语句
[打印本页]
作者:
a554305211
时间:
2015-8-23 21:29
标题:
switch和if语句
流程控制语句:
顺序结构:代码是从上往下,一次来执行的。
选择结构:
if语句:
格式1:
if(关系表达式){
语句体;
}
执行流程:
先执行关系表达式,看它的结果是true还是false,
如果是true,就执行语句体,
如果是false,不执行语句体。
格式2:
if(关系表达式){
语句体1;
}else {
语句体2;
}
执行流程:
先执行关系表达式,看它的结果是true还是false,
如果是true,执行语句体1;
如果是false,执行语句体2;
思考:if的第二种格式和三元表达式有什么区别?
1、能用三元运算符解决的问题,都可以用if来搞定,反之不行。
2、既然是运算符,就肯定要有一个结果。
推荐:优先使用三元运算符,因为它的格式比较简单。
格式3:
if(关系表达式1){
语句体1;
}else if(关系表达式2) {
语句体2;
}else if (关系表达式3){
语句体3;
}else{
语句体4;
}
执行流程:
先执行关系表达式1,看它的结果是true还是false,
如果是true,执行语句体1,if语句结束。
如果是false,继续判断关系表达式2.
。。。。。。。
最后都不满足,执行else中的语句体4;
注意事项:
1、关系表达式的结果必须是boolean类型。
2、if语句后边的大括号可以省略,省略的话只能控制紧跟在它后边的那一行有效代码。
推荐:大括号不要省略。
3、一般来说,有大括号的地方一般是没有分号。
swtich-case语句:
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
..........
default:
语句体4;
break;
}
//给定一个值(整数),输出对应星期几
示例:用户输入1,打印星期一
表达式:
基本:byte,short,char,int
引用:JDK1.5以后支持枚举,JDK1.7以后支持String
使用switch的时候有哪些注意事项:
1、case后边必须是常量。而且多个case时,值不能重复。
2、default可以省略吗?
可以,但是不建议省略,因为它存的所有非正常情况,相当于是else。
3、default可以不放在最后吗?
可以。
4、break可以省略吗?
最后一个break可以省略,程序没问题。
其他break省略的话,可能会发生case穿透。
5、swtich-case语句什么时候结束?
A:遇到break。
B:执行到switch的右大括号。
什么时候使用if,什么时候使用switch?
看需求。如果解决的是固定值的问题,用swtich,如果是区间的问题,用if。
能用switch解决的都可以使用if来解决,反过来不一定。
if(month==3||month==4||month==5)
循环结构:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2