最主要的流程控制方式是结构化程序设计中规定的三种基本流程结构:
1、顺序结构
2、分支结构(即选择结构)
3、循环结构
一、语句和复合语句
1、简单语句和复合语句
Java语言不允许在两个嵌套的复合语句内声明同名的变量。
{
int a;
...
{
int a; //错误
...
}
}
2、注释形式
- 单行注释://
- 多行注释:/* … */
- 文件注释:/** … */
二、顺序结构
三、分支结构
1、if分支结构
- 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量;
- 语句块只有一条执行语句时,一对{}可以省略,但建议保留
- if-else语句结构,根据需要可以嵌套使用;
- 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略;
- 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓;当多个条件是“包含”关系时,“小上大下 / 子上父下”
注意:在Java语言中,条件表达式的结果必须是逻辑型量(即 true 或false),与C和C++不同
2、switch选择语句
- switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);
- case子句中的值必须是常量,不能是变量名或不确定的表达式值;
- 同一个switch语句,所有case子句中的常量值互不相同;
- break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
- default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default。
四、循环结构
1、while语句
2、do-while语句
- 特点:循环体至少被执行一次
- 注意:与while循环语句的一个主要区别是do-while循环语句在结尾处加了一个分号“;”
3、for循环语句
五、循环中的跳转语句
1、break语句
作用:break语句从它所在的分支语句或循环体中跳转出来,执行分支或循环体后面的语句。
常用于:
- 使switch语句终止某个case
- 使一个循环立即结束
特殊:带标签的break
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
}
}
}
2、continue语句
作用:终止当前这一轮的循环,跳过本轮循环剩余的语句,直接进入下一轮循环。
3、return语句
作用:使程序从方法中返回,并为方法返回一个值。
注意:
- return:并非专门用于结束循环的,它的功能是结束一个方法。
当一个方法执行到一个return语句时,这个方法将被结束。 - 与break和continue不同的是,return直接结束整个方法,不管
这个return处于多少层循环之内
4、总结
- break只能用于switch语句和循环语句中。
- continue 只能用于循环语句中。
- 二者功能类似,但continue是终止本次循环,break是终止本层循环。
- break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
- 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
- 很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同于goto的。