流程控制
一、复合语句
同C语言或其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句由开括号“{"开始,闭括号“}"结束。对于复
合语句中的每个语句都是从上到下地被执行。复合语句以整个块为单位,可以用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。
二、条件语句
1、if条件语句
if(布尔表达式){
语句序列
}
注意:条件语句后面的语句序列省略时,可以保留后面的大括号;也可以省略大括号,然后在末尾添加分号。如下:
boolean b = false;
if(b);
=
boolean b = false;
if(b) {}
2、switch多分支语句
switch语句中表达式的值必须是整型或字符型,常量值1~常量值n必须也是整型或字符型。switch语句首先计算表达式的值,如果表达式的值和某个case后面的变量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。此时如果case语句中没有break语句,将继续执行后面case里的若干个语句,直到遇到break语句为止。若没有一一个常量的值与表达式的值相同,则执行default后
面的语句。default语 句为可选的,如果它不存在,而且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。
三、循环语句
1、while循环语句
while(条件表达式)
{
执行语句;
}
2、do…while循环语句
do
{
执行语句;
}while(条件表达式);
3、for循环语句
for(表达式1;表达式2;表达式3)
{
语句序列
}
4、for循环语句增强
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语 句在遍历数组等方面为程序员提供了很大的方便,语法如下所示:
for(元素变量x :遍历对象obj)
{
引用了x的java语句;
}
例1:创建类Repetition,在主方法中定义一维数组,用foreach语句遍历该数组。
public class Repetition { // 创建类Repetition
public static void main(String args[]) { // 主方法
int arr[] = { 7, 10, 1 }; // 声明一维数组
System.out.println("一维数组中的元素分别为:"); // 输出信息
for (int x : arr) {
//foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出
System.out.println(x);
}
}
}
四、循环控制
1、break语句
使用break跳出循环体。
注意:在循环嵌套情况下,break只会使程序流程跳出包含它的最内层的循环结构,即只跳出一层循环。
例2:在嵌套的循环中使用break跳出内层循环
public class BreakInsideNested {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 6; j++) {
if (j == 4) {// 如果j等于4的时候就结束内部循环
break;
}
System.out.println("i=" + i + " j=" + j);
}
}
}
}
如果想要break跳出外层循环,Java提供了“标签”的功能,语法如下:
标签名:循环体{
break 标签名
}
- 标签名:任意标识符
- 循环体:任意循环语句
- break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致,带有标签的break可以指定跳出的循环,可以是内循环也可以是外循环。
例3:用带有标签的break跳出外层循环
public class BreakInsideNested {
public static void main(String[] args) {
Loop:for (int i = 0; i < 3; i++) {
for (int j = 0; j < 6; j++) {
if (j == 4) {// 如果j等于4的时候就结束内部循环
break Loop;
}
System.out.println("i=" + i + " j=" + j);
}
}
}
}
2、continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环,而是跳过本次循环结束前的语句,回到循环条件的测试部分,在for循环中遇到continue,首先执行循环的增量部分,然后进行条件测试。在while和do…while循环中,continue语句使控制直接回到测试部分。
例4:输出1~20之间的奇数,用continue跳出循环。
public class ContinueTest
{
public static void main(String[] args)
{
for(int i = 1;i<=20;i++)
{
if(i%2==0)
{
continue;
}
System.out.println(i);
}
}
}