分支结构
程序流程
我们遇到的问题千奇百怪,但与之对应的解决方法在本质上是相同的。尽管现实世界的问题是复杂的、千变万化的,但与之相对应的计算机算法流程只有三种结构。
它们可以解决几乎全部的问题,任何一种编程语言都具备这三种流程结构
1)顺序结构
2)分支结构(选择结构)
3)循环结构
顺序结构
当没有任何有关流程控制的语句时,程序从上而下,一行一行地顺序执行
分支结构
若条件P为真,则执行A,否则执行B
循环结构
若条件P为真,则执行循环体代码,执行一次完毕后,再次判断条件P是否为真,若为真则执行循环体代码。然后重复上面的过程,直到P为假,退出循环
分支结构
根据一定的条件有选择地执行或跳过特定的语句。
简单来说,就是根据不同的情况做出不同的决定
if结构
基本语法:
if(表达式) {
语句块
}
流程图
描述: 当表达式值为ture时,执行语句块A,否则跳过语句块A
语法上,语句块仅有一句代码时,可以省略{},但是一般不建议这么做。
if-else结构
基本语法
if(表达式) {
语句块A
} else {
语句块B
}
流程图
描述:表达式为true时,执行语句块A;表达式为false时,执行语句块B。
对if语句进行判断,如果为真,就执行if里的语句,如果为假,就执行else里的语句。
if-else if-else结构
基本语法
if(表达式1) {
语句块1
} else if (表达式2) {
语句块2
} else if (表达式3) {
语句块3
}
……
else if (表达式n) {
语句块n
} else {
语句块n+1
}
注意:
else if 可以有多个,也可以没有
else 可以有,可以没有
流程图
分支嵌套
分支结构中还可以再对某个条件进行判断。
如果有多个数据同时参与判断,此时可以使用分支嵌套来进行解决。
基本语法
if(条件1) {
if(条件2) {
代码块1
} else {
代码块2
}
} else {
代码块3
}
流程图
switch结构
基本语法
switch(表达式) {
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
……
case 值N:
语句块N;
break;
[default:
语句块;
break;]
}
1)表达式的值必须是以下几种类型之一:
char,byte,short,int,enum,String(Jdk7之后);
不能用boolean,long,float,double等其他类型
2)case子句中的值必须是常量值,不能是一个范围
3)所有case子句中的值不能重复,否则编译出错
4)default子句是可选的,如果没有default,程序依旧可以运行。
5)break语句用于执行完一个case分支后跳出switch语句块;如果没有,引起case贯穿。caseg贯穿:如果没有break;程序执行此case语句后,依旧执行下一个case语句,知道遇到break或者语句结束。
if和switch的比较
相同点
都可以用与判断。
不同点
if用于判断区间数值,switch用于判断等值即确定的值。