八、流程结构(顺序结构、选择结构、循环结构)
1、顺序结构
Java 的基本流程结构就是顺序结构,可以理解为 "代码都是一行一行执行的";
语句和语句之间是按照从上到下的顺序执行的,它是由若干个依次执行的处理步骤组成的。
2、选择结构
2.1 If
语法格式:
if(boolean b){
...
}
当布尔类型的"b"为 true 时,大括号内执行;否则,直接跳过不执行
if 可以有 "单选、双选、多选、嵌套" 四种使用方式:
单选:
if(boolean b){
...
}
双选:
if(boolean b){
...
}else{
...
}
多选:
if(boolean b1){
...
}else if(boolean b2){
...
}else if(boolean b3){
...
}else if(boolean bx){
...
}else{
...
}
嵌套:
if(boolean b1){
if(boolean b2){
...
}
}
2.2 Switch
"多选择结构" 还有一种实现方式: switch
switch case 语句用于判断"一个变量"与"一系列值"中的"某一个值"是否匹配,当成功匹配时,执行指定的代码;
语法:
switch(value0){
case value1:
...
break;
case value2:
...
break;
case value3:
...
break;
default:
...
}
switch 语句中的变量类型可以是 "byte、short、int、char";
JDK7开始支持 String 类型,同时 case 变量必须是字符串常量或字面量;实际上就是通过 String 的 hashCode进行比较;
default 为默认选项,当所有的 case 都不匹配时,执行 default 中的语句。
"!注意!":每次 case 结尾都要加 break,否则会出现 "case穿透";
3、循环结构
3.1 while
语法格式:
while(表达式){
...
}
当表达式不成立为 flase时,循环终止;
"死循环":当表达式不可能为false时,程序将无线循环下去,程序即会崩溃,称之为死循环
3.2 do...while
语法格式:
do{
...
}while(){
...
}
do while 相较于 while 时,会先执行 do 里面的代码,也就是说 do while 至少也会执行一次结构内的代码;
可以理解为 无论如何,先执行 do,然后再进行 while循环
3.3 for
for循环是一种支持 迭代(重复反馈过程的活动,每一次迭代的结果会作为下一次迭代的初始值)的通用循环结构;
for循环的次数在执行前就是确定的
语法格式:
for(初始化值,表达式,更新语句){
...
}
举例fori:
for(int i = 0; i < 100; i++) {
...
}
"注意" for 循环也是有 死循环 的!
写法:
for( ; ; ) {
...
}
即 无初始化值,无表达式,无更新 = "死循环"
3.4 增强for
Java5 引入了一种主要用于数组或集合的增强型for循环;
语法格式:
for (数据类型 变量名 : 目标数组或集合) {
...
}
变量名:新的局部变量,代指目标数组或集合中的每一项
数据类型:与目标数组或集合的数据类型相匹配
3.5 拓展 breank,continue
break:
杀死循环,直接从循环体重跳出,意为"结束";
continue:
跳过循环,是指从本次循环跳出,意为"继续";
"注意:break和continue只会对当前循环体产生影响,并不会对外层循环产生影响