Logo

郎哥编程

break和continue语句

2018-07-29 777

文章导读

有时可能不知道循环将要执行的次数,终止循环的条件可在以后确定,所以需要提供一种机制在条件满足的时候跳出循环。另外一种情况是跳过循环体中剩余的语句而准备执行下一次循环。本篇讲述break和continue语句的语法规则及使用方法。通过本篇的学习,你将掌握如何使用break和continue语句,用于解决上面提到的问题


本文分成两个小节,第一小节讲述break语句;第二小节讲述continue语句。

第一小节  break语句

有时可能不知道循环将要执行的次数,终止循环的条件可在以后确定,所以需要提供一种机制在条件满足的时候跳出循环。有时候,我们需要根据条件跳过循环中的一些语句。Java语言提供了break和continue两个关键字,用于改变程序的控制流。

break语句通常用在前面介绍过的switch语句及循环语句中。当break语句用于switch语句时,可使程序跳出switch语句而执行switch语句之后的语句;当break语句用于while、do-while、for循环语句时,可使程序终止循环而执行循环后面的语句。

break语句实际上就是为了使人能方便地描述从循环执行中退出的动作。通常应把break语句放在条件语句控制之下,以便在某些条件成立时立即结束循环。

编程示例1

任务要求:使用break语句退出循环。

程序思路分析:编写一个循环程序,设置循环条件为true,也就是无限循环,声明变量i,并初始化为0。在循环体中i进行自增操作,当该循环变量i的值等于5时,执行break语句,结束该无限循环。

程序代码如下:

package condition;
public class BreakSample1 {
    public static void main(String[] args) {
        int i = 0;
        while (true) {
            i++;
            System.out.printf("\n 第%d次循环", i);
            if (i == 5) {
                System.out.printf("\n i==5 跳出循环,程序结束", i);
                break;
            }
        }
    }
}

编程示例2

任务要求:使用break语句跳出switch结构。

程序思路分析:switch后面的表达式为变量i,i赋值5,然后依次与case语句的常量表达式进行匹配,匹配成功的项,执行break语句跳出switch结构。

程序代码如下:

package condition;
public class BreakSample2 {
    public static void main(String[] args) {
        int i = 5;
        switch (i) {
        case 1:
            System.out.println("this is 1");
            break;
        case 2:
            System.out.println("This is 2");
            break;
        case 3:
            System.out.println("This is 3");
            break;
        case 4:
            System.out.println("This is 4");
            break;
        case 5:
            System.out.println("This is 5");
            break;
        default:
            System.out.println("This is default");
        }
 
    }
}

第二小节  continue语句

continue语句只能用在循环里。continue语句的作用是跳过循环体中剩余的语句而准备执行下一次循环。对于while和do-while循环,continue执行之后的动作是条件判断;对于for循环,随后的动作是变量更新。

注意break语句和continue语句的差别。break语句导致循环终止,使程序控制流转向这个循环语句之后;而continue引起的则是循环内部的一次控制转移,使执行控制跳到循环体的最后,相当于跳过循环体里这个语句后面的那些语句,继续下一次循环,下图说明了break语句和continue语句引起的控制转移的情况。

blob.png

图 20?1 break和continue语句引起的控制转移

编程示例3

任务要求:求整数1—100的累加值,但要求跳过所有个位为3的数。

程序思路分析:在循环中加一个判断,如果该数个位是3,就跳过该数不加。如何判断1到100中的那些整数的个位是3呢,还是使用取余运算符“%”,将一个正整数,除以10以后余数是3,就说明这个数的个位为3。

编写循环语句,i为循环控制变量,循环条件为i从1到100,程序检查i除以10的余数是否等于3,如果是,则意味该数的个位数是3,这种情况下,将使用continue语句跳过后续语句,然后转向for循环的表达式3更新循环变量,继续下一次循环。

程序代码如下:

package condition;
public class ContinueSample {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i;
        int sum = 0;
        for (i = 1; i <= 100; i++) {
            if (i % 10 == 3) {
                continue;
            }
            sum += i;
        }
        System.out.printf("sum = %d", sum);
    }
 
}

 

■ 文章小结

1、break语句通常在循环中与条件语句一起使用。若条件值为真,则跳出循环。控制流转向循环后面的语句。如果已执行break语句,则不会执行循环体中位于break语句后的语句。在多层循环中,一个break语句只能向外跳出一层循环。

2、和break语句一样,continue语句通常在循环中与条件语句一起使用,用来控制循环。在循环中遇到continue语句后,就不会执行该循环中位于continue后的任何语句。continue语句用于结束当次循环,继续下一次循环。

■ 思考与练习

1、编写一个程序,要求循环接收用户输入的数字,并显示到屏幕上,当用户输入100,程序用break语句跳出循环,程序结束。

2、编写一个程序,输出100以内的整数,要求输出的整数不包括3、5以及3和5的倍数。

提示:可以利用取余运算符“%”,判断一个数值是否是3和5的倍数。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论