五、JavaSE语言基础之流程控制
流程控制的简单概念
流程控制:指通过关键字控制代码的执行流程;
一、顺序结构:执行顺序从左到右从上到下;
顺序结构无关键字,一般而言大多数代码都是顺序结构;
二、选择结构:根据条件判断是否执行
选择结构的关键字:if、else、switch;
/**
选择结构的简单格式
**/
// 单分支结构
if(){
}
// 双分支结构
if(){
}else{
}
// 多分支结构
if(){
}else if(){
}else if(){
}…
switch(){
case 1:
...
...
}
/**
选择结构详解
**/
if(条件表达式1){
条件表达式1成立时执行的代码块;
条件表达式1成立时,将不会继续执行其后的所有条件判断直接跳出分支结构;
}else if(条件表达式2){
条件表达式2成立时执行的代码块;
}else{
以上所有条件表达式都不成立时要执行的代码块;
}//else可根据实际情况选择是否添加
switch(表达式){
case值1:
表达式的值为值1时要执行的代码块;
break;//如无break,会继续执行其后的case子句,直至碰到break或者switch语句整体执行完毕
case值n:
表达式的值为值n时要执行的代码块;
break;
default:
表达式值不为以上所有值时要执行的代码块;
break;
}
关于switch的几点注意事项:
1、switch只适用于穷举法(需列举出所有可能的情况)
2、switch表达式的值的类型仅限于:int、String、Enum
3、只有当所有的case都不等于switch表达式的值时才执行default;default的执行顺序与其位置无关(default即使在case前,也不会最先执行它)
4、break作用是结束switch结构
5、case不能重复
三、循环结构:当条件成立时执行循坏体内语句,一直重复,直至条件不成立
循环结构的关键字:while、for
// 1、while循环;
// while循环的格式:
while(条件表达式){
条件表达式成立时执行的代码块;(循环体)
迭代语句;(按指定的算符重复的更改某个变量的值)
}//格式与if极为相似,甚至可以说是完全相同;
/**
while的执行过程:
1、判断条件表达式是是否成立,不成立结束while;
2、条件表达式成立,执行代码块一次;
3、重复1、2直到条件表达式不成立;
**/
//2、do-while;
//do-while循环的格式
do{
循环体(循环执行的代码块)
迭代语句;
}while(条件表达式);
/**
while与do-while的区别:
do-while是先执行,后判断;至少执行一次;
while先判断后执行;可能一次也不执行;
**/
//3、for;
//格式如下
for(初始化语句;条件表达式;迭代语句){
循环体(条件表达式成立时执行的代码块)
}//初始化语句:用于定义变量、给变量赋初始值的语句
//for特殊情况:初始化语句、条件表达式、迭代语句、都可以省略;构成死循环
//当条件表达式省略后:条件表达式的取值默认为true
初始化语句;
while(条件表达式){
循环体(条件表达式成立时执行的代码块)
迭代语句
}//根据以上两段代码格式,我们可以看出for和while完全等价,只是格式不同
//for循环中相关变量的作用域
int a=1;//变量a:在main方法的大括号内定义的作用域为整个main方法
for(int b=1;b<5;){
//变量b:在for循环的初始化语句中定义的作用域为整个for循环
int c=1;
//变量c:在for循环的循环体中定义的,作用域为本次for循环
}//一个变量的作用域取决于定义此变量的括号
四、跳转:
跳转语句共两个,分别为:break与continue;
break:
使用场景1:用在switch中,作用:结束switch结构;
使用场景2:用在循环中,作用:结束本层循环;
continue:
使用场景:用在循环中,结束此次循环,继续下一次循环;