Java流程控制

Java流程控制可大致分为以下几部分:

1.复合语句:与C语言及其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句由开括号“{”开始,闭括号“}”结束。

2.条件语句:条件语句可根据不同的条件执行不同的语句。包括if条件语句和switch多分支语句。

3.循环语句:while循环、do while循环、for循环、foreach循环

一.if条件语句

if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而另一种情况下执行另外的语句。

使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件可分为简单的if条件语句、if...else语句和if...else if多分支语句。

1.简单的if条件语句

语法如下:

if(布尔表达式){

    语句序列

}

2.if...else语句

语法如下:

if(布尔表达式){

    若干语句

}else{

    若干语句

}

3.if...else if多分支语句

语法如下:

if(条件表达式1){
    语句序列1

}else if(条件表达式2){
    语句序列2

}
...
else if(表达式n){
    语句序列n

}

二.switch多分支语句

语法如下:

switch(表达式){
    case 常量1:
        语句块1
        break;
    ...

    case 常量n:
        语句块n
        break;
    default:
        语句块n+1
        break;
}

三.循环语句

1.while循环语句

语法如下:

while(条件表达式){
    执行语句
}

2.do...while循环语句

语法如下:

do{
    执行语句
}while(条件表达式);

do...while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句中“{}”中的程序至少要被执行一次。

注:do...while循环语句与while语句的一个明显区别是,do...while语句在结尾多了一个分号(;)。

3.for循环语句

语法如下:

for(表达式1;表达式2;表达式3){
    语句序列
}

表达式1:初始化表达式,负责完成变量的初始化

表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件

表达式3:循环后操作表达式,负责修整变量,改变循环条件

在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环体;在执行完循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算表达式2开始,若表达式2返回true,则继续循环,否则跳出整个for语句。

4.foreach循环语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。

语法如下:

for(元素变量 x:遍历对象 obj){
    引用了x的java语句
}

foreach语句中的元素变量x,不必对其进行初始化。下面通过简单的例子来介绍foreach语句是如何遍历一维数组的。

package com.it.cast.cn;

public class Repetition {
    public static void main(String[] args) {
        int[] arr = {7, 10, 1};
        System.out.println("一维数组中的元素分别为: ");
        for (int x : arr) {
            System.out.println(x);
        }
    }
}

 

四.循环控制

循环控制包含两个方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转。

控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continue是执行下一次循环。

1.break语句:使用break语句可以跳出switch结构。在循环结构中,同样可以用break语句跳出当前循环体,从而中断当前循环。

使用break跳出循环:

package com.it.cast.cn;

public class BreakTest {
    public static void main(String[] args) {
        for (int i = 0; i <= 100; i++) {
            System.out.println(i);
            if (i==6){              //如果i等于6则跳出循环
                break;
            }
        }
        System.out.println("---end---");
    }
}

在嵌套的循环中使用break跳出内层循环:

package com.it.cast.cn;

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跳出外层循环:

package com.it.cast.cn;

public class BreakOutsideNested {
    public static void main(String[] args) {
       Loop: for (int i = 0; i < 3; i++) {          //在for循环前用标签标记
            for (int j = 0; j < 6; j++) {
                if (j==4){                          //如果j等4就结束外层循环
                    break Loop;                     //跳出Loop标签标记的循环体
                }
                System.out.println("i="+i+" j="+j);
            }
        }
    }
}

2.continue语句:continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳出本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do...while循环中,continue语句使控制直接回到条件测试部分。

输出1~20之间的奇数,使用continue跳出循环:

package com.it.cast.cn;

public class ContinueTest {
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
            if (i % 2 == 0) {               //如果i是偶数
                continue;                   //跳到下一循环
            }
            System.out.println(i);          //输出i的值
        }
    }
}

与break语句一样,continue也支持标签功能,语法如下:

标签名:循环体{
    continue 标签名;
}

标签名:任意标识符

循环体:任意循环语句

continue标签名:continue跳出制定的循环体,此循环体的标签名必须与continue的标签名一致。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值