(一)引言
在生活中,我们经常会发现在医院或者官方机构办事是要走流程的,同样的程序必须能操控自己的世界,在执行过程中作出判断与选择。在Java中,通过流程控制语句可实现程序执行流程的随意控制,既可以顺序执行,也可以随意跳转,还可以重复执行某一段代码。
Java 的程序流程控制分为顺序结构、选择结构、循环结构和跳转语句。
(二)顺序结构
顺序结构就是按照程序代码先后顺序自上而下地执行,直到程序结束,中间没有任何
判断和跳转。大致分为两个方向:按照程序代码先后顺序自上而下地执行从左往右的代码。
(三)选择结构
选择结构(又称分支结构)用于判断给定的条件,根据判断的结果来控制程序的流程。
选择语句包括语句和switch语句,它们用来解决实际应用中按不同情况进行不同处理的问题。
① if语句
if语句是通过判断给定表达式的值来决定程序流程的,常见形式:
1.if(表达式){
//在流程控制语句中用每对大括号括起来的代码称为代码块,也叫条件执行体。
代码块 ;//如果表达式为真,就执行 代码块,否则跳过
}
2.if
(表达式){
语句块1 ;//如果表达式为真,就执行语句块1,否则执行else中的语句块2
}else{
语句块2 ;}
3.
//实质是条件细化
//条件的逐步筛选
if(表达式1)
{代码块1;//如果表达式为真,就执行 代码块1,否则跳过
}
else if(表达式2)
{代码块2;//如果表达式为真,就执行 代码块2,否则跳过
}
else if(表达式3)
{代码块3;//如果表达式为真,就执行 代码块3,否则跳过
}
.....该语句的else if 可无限嵌套。
else
{printf(“上述表达式均不成立\n”);//上述表达式均不成立才执行
}
//整个语句一条复合语句,只会做一次成功的比较,执行一个地方
②switch语句
switch语句(多分支语句)是通过数据匹配的方式实现程序的多分支控制。其语法形式如下:
switch(表达式)
{
case 常量1: //表达式和常量1比较
语句1;
case 常量2:
语句2;
case 常量3:
语句3;
default:
其他情况执行的地方;
}
//1.switch执行过程:从上至下执行;switch语句只做一次成功的比较,后面的语句不需要比较,都会一次执行
//2.case后面必须是常量,一般写的数字,或者字符,不能写字符串
//3.default是可选的,当表达式的值与任何的value的值都不匹配时,执行default代码块;如果没有default语句,就直接跳出循环;default的位置是随便放的,一般是放在最下面的
//4.switch语句不执行case和default以外的其他语句
//5.一般switch都是结合break语句(用来跳出switch语句)来使用的//6.如果多个case 不同的值是相同的处理方案,则可以合并,就是省略相应代码块的break.
break语句:是用来中断当前循环,通常在 switch 语句和 while、for、for...in、或 do...while 循环中使用 break 语句。 最一般的是在 switch 语句中使用 label 参数,但它可在任何语句中使用,无论是简单语句还是复合语句。
//7.表达式的返回值类型只能是char、byte、short或int型。
(四)循环结构
循环结构可以重复执行某一段代码,直到不满足循环条件为止。循环结构主要有for、while、do-while三种循环语句。
①for语句:
语法形式:
for(表达式1;表达式2;表达式3)
{
循环体4;
}
//执行循序:1 2 4 3 ; 2 4 3 ; 2 4 3--》真正循环:432//表达式1(初始化语句):循环变量初始化且表达式1定义的变量只能在循环中使用
//表达式2(条件判断语句):循环条件:该表达式是一个布尔型表达式。其值为true,执行循环体4;否则结束循环。
//表达式3(条件控制语句):循环变量的改变特例:①缺省形态:for(;;) 语句;死循环 ;
②逗号表达式的写法:
for(int i=0,j=3;i<j;i++) 语句;
流程图:
②while语句
常用于重复条件次数不确定的循环,其语法形式:
while(布尔表达式1) {
代码块;
}
//while语句先判断布尔表达式1的值,其值为true,执行代码块;否则结束循环。
③do-while语句
语法形式:
do{
代码块;
}while(布尔型表达式);
(五) 跳转语句
-
break:只能在switch或者循环中使用;退出整个循环,不能再循环
-
continue:只能在循环中使用;退出本次循环,进入下一个循环的条件判断
-
goto:只能在当前函数中使用---》少用,慎用;写循环条件,不要用goto