引言
编程语言中,用于控制程序执行顺序,流程控制是逻辑的体现,通过流程控制可以组织多条语句
java语言中存在的流程控制有:顺序、选择、循环
顺序结构
顺序流程控制,是一种代码执行的默认顺序,依据代码的编写顺序从上到下,从外到内依次执行
public static void main(String[] agrs){
System.out.println("setp1")
System.out.println("setp2");
System.out.println("setp3");
}
选择结构
分支流程控制 if
if语句有四种使用形式:
- if(条件){…}
- if(条件){…}else{…}
- if(条件){…}else if(条件){…}else{…}
- if(条件){ if(条件){…} } else {…}
- 单分支if
if (condition) {
//执行的代码语句
}
condition代表的是条件表达式是,boolean值,为true则执行{}里面的代码,若为false则不执行{}里面的代码,直接跳过
- 双分支if-else
if (condition) {
// 代码段1
}
else {
// 代码段2
}
condition代表的是条件表达式是,boolean值,为true则执行if后{}里面的代码,若为false则执行else后面{}里面的代码
- 多分支if-else if-else····
if (condition1) {
// 代码段1
}
else if (condition2) {
// 代码段2
} else {
// 代码段3
}
由上可以自己得出运行机制
- 嵌套分支
if (condition1) {
if (condition2) {
// 代码段1
}
else {
// 代码段2
}
}
else {
// 代码段3
}
分支流程控制 switch
switch( value ){
case 值1 : 语句;
break;
case 值2 : 语句;
break;
case 值N : 语句;
break;
default: 语句;
}
- 检测某一个变量的值, 从上往下依次与每一个case进行校验、匹配
- 如果变量的值和某一个case后面的值相同,则执行这个case后的语句
- 如果变量的值和每一个case都不相同,则执行default后的语句
- case具有穿透性,只有遇到break或者switch执行完才会停止,break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去
- value值得类型只能是byte、short、int、char、enum;java7之后可以是String
- 所有case子句中的值应是不同的,否则会编译出错
- default子句是可选的(不是必须的)
注意:default放在switch第一行且没break时,先是还是去匹配,若没找到,再回去调用default,再依次执行,直到遇见break或是执行完毕才停止
switch( value ){
default: 语句;
case 值1 : 语句;
break;
case 值2 : 语句;
break;
case 值N : 语句;
break;
}
循环结构
重复做事情,重复执行某些代码。一般通过三个要素实现控制,1计数器,2循环条件,3计数器变化。
for循环
语法
for(初始化; 条件; 递增 ){
需要执行的语句;
}
示例
public static void main(String[] args){
for(int i = 0; i < 100; i++){
System.out.println(" Good Boy !");
}
}
while循环
语法
while( condition ){
执行的语句;
}
示例
public static void main(String[] args){
int i = 0;
while(i<10){
System.out.println( "hello boy" );
i++;
}
}
do-while循环
语法
do{
//循环体;
}while( condition );
示例
public static void main(String[] args){
int i = 0;
do{
System.out.println( "hello boy" );
i++;
}while( i<10 );
}
break 与continue
break 和 continue 的作用是控制循环的节奏,当然break 也可以在 switch中使用,作用是结束switch
在循环中:
- break: 立即终止本层循环
- continue; 跳过本次循环,快速进入下一次循环
label跳出循环
public static void main(String[] args){
out : for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; i++) {
if (i == 4) {
break out;
}
}
}
}
用于跳出不相邻的循环(包含关系)
总结
可以说是顺序、选择、循环三个构成了代码,三者这件可以互相嵌套使用