顺序结构:
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构:
根据条件,选择性地执行某段代码。
有if…else和switch两种分支语句。
if…else:
执行if-else语句时,一定会选择其中一个路径执行,而且也仅会选择一条路径。
1.条件判断之间可以嵌套
2.①如果多个条件之间是”互斥“关系,多个条件语句上下顺序是自由的。
②如果多个条件之间存在”包含“关系,要求范围小的写在范围大的上面。
说明:如果if-else if-else条件的执行语句块{}只有一条语句的话,那么这一堆{}可以省略
三种格式:
1.
if(true){
执行代码块;
}
2.
if(条件表达式){
执行代码块;
}else{
执行代码块;
}
3.
if(条件表达式){
执行代码块;
}else if(条件表达式){
执行代码块;
}
…
else{
执行代码块;
}
switch语句:
1.根据变量的值,一旦满足case条件,就执行case的相应语句。如果没有break或者已经到结尾的话,会继续执行其下的case语句。
2.default:是可选的,而且位置是灵活的。
3.变量可以是哪些类型:char byte short int 枚举 String(jdk1.7)
4. case条件:其中条件只能是变量的值,不能是取值范围!
说明:当多个case语句处理的语句块一致时,可以统一来书写。
switch(变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
…
case 常量N;
语句N;
break;
default:
语句;
break;
}
if和switch语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte、short、int、char这四种类型。虽然两个语句都可以使用,建议使用switch语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
循环结构
在循环条件满足的情况下,反复执行特定代码的功能
循环语句的四个组成部分:
初始化部分
循环条件部分
循环体部分
迭代部分
循环语句分类
for循环
while循环
do/while循环
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
for循环结构:
1.格式:
①初始化条件
②循环条件
③迭代条件
④循环体
for(①;②;③){
④
}
2.执行过程:①-②-④-③-。。。-④-③-②
直至循环条件不满足,退出当前的循环
while循环结构:
1.格式:
①初始化条件
②循环条件
③迭代条件
④循环体
①
while(②){
④;
③;
}
2.执行过程:①-②-④-③-。。。-④-③-②
for循环与while可以相互转换。区别是for循环的初始化条件写在里面的,while循环的初始化条件写在外面的。
do/while循环结构:
1.格式:
①初始化条件
②循环条件
③迭代条件
④循环体
①
do{
④;
③;
}while(②);
2.执行过程:①-④-③–②-。。。-④-③-②
2.do-while与while的区别:do-while循环至少会执行一次!
无限循环:
for(;😉{
}
while(true){
}
说明:一般情况下,在无限循环内部要有程序终止的语句,使用break实现。若没有,那就是死循环!
嵌套循环:
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do…while均可以作为外层循环和内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次。
for(;😉{
for(;😉{
}
}
while(){
for(;😉{
}
}
break:使用在switch-case中或者循环中(if-else中没用的)
如果使用在循环中,表示:结束”当前“循环
continue:使用在循环结构中
表示:结束”当次“循环,除这次还继续执行
加上"label:"标签后:
break label:结束外层循环
continue label:结束当次外层循环(外层循环中的内存循环体后面的语句不再执行)
在break和continue语句之后不能添加其他语句,因为永远不可能被执行。