其实也不能说是Java的流程控制,应该说所有的编程语言的流程控制,都包括三类:
1:顺序执行:程序的执行都是从上到下的
2:分支选择 :据条件有选择的去执行某些代码
3:循环: 反复的执行某些代码
顺序执行没什么好说的,先来说说分支选择吧
if
语法:
if(boolean表达式)
执行过程:如果boolean表达式返回true,就执行紧跟在其后的第一条java语句(可以是一个代码块);如果是false,就跳过其后第一条语句,执行后续的语句。
如果想通过一个条件去控制是否执行很多条代码,那么必须将这些代码放到一个代码块中。建议:如果仅仅是一条语句,也建议使用代码块。
注意:不要在小括号的后面添加分号 。分号是一条java 语句。 空语句。
if() else if()
if() else if()是多分支选择
最常见的语法形式:
if(条件){
}else if(条件){
}else {
}
//所有的条件都是互斥的。只会执行其中某一个代码块。后续的全部跳过。
最后的else 是可以不要。
整个多分支选择体系中,else 的数量肯定小于等于 if。和 else 前面的距离它最近的if 配对。
switch()
switch:在英文单词中是开关的意思
最常见的语法形式:
switch(变量or变量表达式){
case 常量1:
//若干代码
case 常量2:
//若干代码
break;
case 常量3:
//若干代码
break;
default:
//若干代码
break;
}
执行的过程:
1:计算switch后的变量或者变量表达式的返回值。
2: 依次和 switch 中的case 后面的常量值进行比较,如果 返回值和case 后的常量值相等,
则执行当前case 中的代码,然后直到遇到break 或者执行到switch代码块的末尾,整个switch语句结束。
3:如果所有的case 都没有匹配成功,如果switch语句中包含default语句,则执行default 中的代码。
注意的内容:
1:switch后面的小括号中的数据类型 : 整数类型(byte,short int char)
jdk1.5 枚举类型 1.7增加了字符串类型
2:case:
case的数量是没有任何的限制。
case 后必须跟常量或者常量表达式。必须保证 switch 后的变量的类型 和 case 后的常量的类型,必须兼容。
所有的case 后的常量的值不能相同。常量后跟 冒号。
每一个case 后都可以跟一个break;但是不是必须要一一对应。不需要有一个case就需要对应一个break.
3:default:可以有也可以没有,根据需求来。
if和switch的选择
switch 有什么局限性: 只能进行等值比较 数值类型也有限制 整数 + 枚举 + 字符串
if :只要是boolean 表达式即可。
所有的switch 都可以使用if else if else 替代。
如果使用等值比较 ,分支比较多 ,可以考虑使用swtich。
网友评论