一、分支语句
if语句:
if条件结构是根据条件判断之后再作处理。
简单语句:
if(boolean类型表达式){
执行语句
} else{
执行语句
}
执行过程:
当程序执行到if时,首先会判断()里面的表达式的值,如果表达式的值为true,那么就执行()后{}中的语句,如果为false,那么就执行else后面{}中的执行语句。
一般if后括号表达式中的常用运算符:&,|,^,&&,||,!,==。
示例:
判断某一年是否为闰年(被4整除但不能被100整除或能被400整除)是闰年,否则为平年
switch语句:
switch(表达式){
case取值i:语句块i;
break;
case取值n:语句块n;
break;
default:语句块n+1
break;
}
switch语句有关规则:
1.表达式的返回值必须是下述几种类型:int,byte,char,short确定结果的,jdk
1.7后支持string类型;
2.case子句中的取值必须是常量,且所有case语句中的取值应是不同的。
3.default子句是可选的
4.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果case后面
没有写break则直接往下执行。(防止穿透)
5.case后面的执行体可写大括号,也可不写大括号。
示例:
分支语句比较和经验总结:
if和switch的异同点
同:
都是选择分支语句
异:
1.语法不同
2.语句后表达式的类型不同,if语句后表达式值的类型是boolean;switch分支表达式的类型是int,byte,char,shor,jdk1.7后支持string类型;
3.使用场景不同;if:变量的值在某个区间;switch:变量的值是某个定值。
注:三目运算符能实现的都可以使用if语句实现,反之这不行。
Java7 switch支持string的实现原理:
这个新特性是在编译器这个层次上实现的,在编译的过程中,编译器会根据源代码的含义进行转换,不同的java编译器可能会采用不同的方式进行转换,比如:如果switch语句中只有一个case语句,那么就可以简单的将其转换为一个if语句。如果包含一个case和一个default语句,就可以转换车一个if-else语句:而对于复杂的情况(多个case语句),也可以转换成java7目前的switch语句,只不过使用字符串的哈希值(整数)作为switch语句表达式的值。
重点:
1.在实现分支判断时,一个好的习惯是吧匹配成功率高的判断放在前面,可以提高成功率,可以提高效率。
2。在表达式中判断,我们尽量使用确定的值和不确定的值去判断。