Java程序控制结构:
- 顺序控制
- 分支控制
– if else
– switch - 循环控制
– for
– while
– do while
1、顺序控制
程序从上到下的逐行的执行,中间没有任何判断和跳转
2、分支控制(if else和switch)
- 单分支
- 双分支
- 多分支
2.1、单分支
基本语法:
if (条件表达式) {
执行代码块;(可以有多条语句)
}
条件表达式为true时,就会执行{}里的代码,如果为false,就不执行
特别说明:如果{}中只有一条语句,则可以不用写{}。但建议写上。
2.2、双分支
基本语法:
if (条件表达式) {
执行代码块1;
} esle {
执行代码块1;
}
当条件表达式成立时,执行代码块1,否则执行代码块2
如果执行代码块只有一条语句,则{}可以省略不写
2.3、多分支
基本语法:
if (条件表达式1) {
执行代码块1;
}
esle if (条件表达式2){
执行代码块2;
}
......
else {
执行代码块n;
}
特别说明:
(1)多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有
(2)如果有else ,如果所有的条件表达式都不成立,则默认执行else
2.4、嵌套分支
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。
建议:不要超过3层(可读性不好)
基本语法:
if () {
if () {
//if - else ....
} else{
//if - else ....
}
}
2.5、switch分支结构
基本语法:
switch(表达式){
case 常量1 : //可以理解为“当...”
语句块1;
break;
case 常量2 :
语句块2;
break;
...
case 常量n :
语句块n;
break;
default:
default语句块;
break;
}
switch解读:
1、switch 关键字,表示switch分支
2、表达式 对应一个值
3、表达式值与case常量1的值匹配,则执行语句块1,如果没有匹配,就继续匹配case常量2
4、break表示退出switch结构
5、如果一个都没匹配上,则执行default
2.5.1 switch使用细节
- switch后表达式的数据类型应和case常量类型一致,或者是可以自动转换成相互比较的类型,比如表达式中是char,而case后的常量是int
- switch表达式的返回值必须是:( byte,short,int,enum[枚举],String)中的一种
- case子句中的值必须是常量,而不能是变量
- break语句用来执行完一个case分支后跳出switch语句块;
- 如果没有写break,程序会顺序执行到switch结尾,
2.6、switch和if的比较
- 如果判断的具体数值不多,而且符合byte、short , int、char,enum[枚举],String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
- 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广
3、for循环控制
基本语法:
for (1循环变量初始化; 2循环条件; 4循环变量迭代){
3循环操作(可以多条语句);
}
执行顺序:
1循环变量初始化;
2判断循环条件;
3执行循环操作;
4循环变量迭代;
循环条件为false时,结束循环
使用细节:
-
for关键字后括号内的变量初始化和变量迭代可以写到其他地方,但两边的分号不能省略
int i = 1; for ( ; i <= 10; ){ System.out.println("你好,世界!" + i); i++; } //使用情景:在for循环之后还想使用变量i //补充 for ( ; ; ){ //表示一个死循环 System.out.println("你好,世界!"); }
-
循环变量初始化可以有多条初始化语句,**但要求类型一样,**并且中间用逗号隔开,循环变量迭代也可以有多条,用逗号隔开
int count = 3; for(int i = 0, int j = 0; i < count; i++, j++){ System.out.ptint("i=" + i + "j=" + j); }
for循环的编程思想:
- 化繁为简
- 先死后活
4、while循环控制
基本语法:
1循环变量初始化;
while (2循环条件) {
3循环体(语句);
4循环变量迭代;
}
//执行顺序 1,2,3,4
使用细节:
- 循环条件是返回一个布尔值的表达式
- while循环是先判断再执行语句
5、do…while循环控制
基本语法:
1循环变量初始化;
do {
2循环体(语句);
3循环变量迭代;
} while(4循环条件);
//执行顺序 1,2,3,4
使用细节:
- do while是关键字
- 也有循环四要素,只是为位置不一样
- 先执行,在判断,也就是说,一定会执行一次
- 最后有个分号;
6、多重循环控制
将一个循环放在另一个循环体内,就形成了其那套循环
建议最多不要超过三层循环,否则可读性太差
7、跳转控制语句-break
break语句用于终止某个语句块的执行,一般使用在switch或者循环[for , while , do-while]中
基本语法:
{
...
break;
...
}
使用细节:
break语句出现在多层嵌套语句中时,可以通过标签指明要终止的是哪一层语句块
lable1:{
...
lable2:{
...
lable3:{
...
break lable2;
...
}
}
}
- break 语句可以指定退出哪一层
- lable1 是标签名,名字可以起任意标识符
- 建议不使用标签
- 如果 break 没有指定哪一层,默认退出最近的循环体
8、跳转控制控制语句-continue
用于结束本次循环,继续执行下一次循环
也可配合标签使用
9、跳转控制语句-return
return语句表示:跳出当前所在的方法
若return写在main方法中,会退出程序