优秀的编程知识分享平台

网站首页 > 技术文章 正文

流程控制语句之break(流程控制语句是什么)

nanyue 2024-07-18 03:47:40 技术文章 13 ℃

编者按

前面几节我们学习了循环的三种结构for/while/do while,循环过程中,因为某些条件想要跳出循环的话,如何处理呢?Java中的break关键字可以解决这个问题!来吧,开始今天的自学之旅!

内容提要

你是否曾经听过死循环?如何打破死循环呢?我们今天内容将告诉大家。本期主要内容包括了:

  • break关键字概述
  • break应用场景

break关键字概述

break是Java语言中48个关键字之一,它的有以下两方面的作用:

  • 强制结束循环,跳出循环体。
  • 跳出switch case语句

其中,循环是指以下三种类型:

  • for循环
  • while循环
  • do while循环

1. 跳出for循环

跳出for循环,需要使用break关键字;通常是满足某种条件时,break结束整个for循环。具体代码示例:

public class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 跳出for循环
        * counter是计数器,计算找到目标时循环次数
        * cycles最大的循环次数
        * base是基数,按照指数增长,阙值是4096
        */
        int counter = 0;
        int cycles = 10000;
        int base = 1;

        for (int i = 1; i <= cycles; ++i) {
            base *= 2;

            if (base == 4096) {
                counter = i;
                System.out.println("base(初始值1)已经增长至阙值(4096),结束循环!截止目前,已经循环的次数是" counter + ",剩余循环次数是" + (cycles - counter));
                break;
            }
        }
    }
}

2.跳出while循环

同样,while循环也可以使用break关键字强行跳出来;通常是满足某种条件时,break结束整个while循环。具体代码示例:

public class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 跳出while循环
        * counter是计数器,计算找到目标时循环次数
        * cycles最大的循环次数
        * base是基数,按照指数增长,阙值是4096
        */
        int counter = 0;
        int cycles = 10000;
        int base = 1;
        int i = 1;

        while (i <= cycles) {
            base *= 2;

            if (base == 4096) {
                counter = i;
                System.out.println("base(初始值1)已经增长至阙值(4096),结束循环!截止目前,已经循环的次数是" counter + ",剩余循环次数是" + (cycles - counter));
                break;
            }

            ++i;
        }
    }
}

3.跳出do while循环

break关键字在do while循环使用方式同for和while一样,也是需要满足某一条件,break强制结束整个循环。具体代码示例:

ublic class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 跳出do while循环
        * 寻找目标数100
        */
        short begin = 0;
        short target = 100;

        System.out.println("开始找目标数游戏啦,起始值是" begin);

        do {
            if (begin == target) {
                System.out.println("哈哈,已经找到了目标数" target);
                break;
            }
            
            ++begin;
        } while (true);
    }
}

4.跳出switch case分支

我们在前面介绍过switch case分支结构,其中,case分支中有break关键字。break关键字在switch case中的作用就是跳出某个或者多个case分支。具体代码示例:

public class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 成绩等级规则:
        * A 成绩优秀
        * B 成绩良好
        * C 成绩合格
        * D 成绩不合格
        */
        char level = 'B';

        switch (level) {
            case 'A':
                System.out.println("张三成绩等级是" + level + ",成绩优秀!");
                break;

            case 'B':
                System.out.println("张三成绩等级是" + level + ",成绩良好!");
                break;

            case 'C':
                System.out.println("张三成绩等级是" + level + ",成绩合格!");
                break;

            case 'D':
                System.out.println("张三成绩等级是" + level + ",成绩不合格!");
                break;

            default:
                System.out.println("输入的成绩等级有误(A~D),请重新输入!");
                break;
        }
    }
}

break关键字应用场景

break关键字主要用于跳出循环,如for、while、do while或者switch case语句。目前,break关键字应用在以下场景:

  • 跳出循环,循环满足某个条件时,break强制退出整个循环。具体代码详见上述。
  • 配合switch case语句使用,某个分支满足条件时,直接结束整个switch case分支结构。具体代码详见2.4节。
  • 跳出嵌套循环,多重循环时,可以使用break关键字跳出内层或者外层循环;如果是跳出内层循环,开始新一轮的外层循环;如果是跳出外层循环,整个多重循环就结束了。

多重嵌套循环代码示例:

public class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 跳出多重循环之跳出内循环,以for循环为例
        *
        */
        for (short i = 0; i < 10; ++i) {
            for (short j = 0; j < 10; ++j) {
                if (i == j) {
                    System.out.println("外层循环i变量和内层循环变量j相等,内层循环结束;i=" i + ", j=" +j);
                    break;
                }
            }
        }
    }
}
public class BreakKeyWord {
    public static void main(String []args) {
        /*
        * 跳出多重循环之跳出外循环,以for循环为例
        * 两数之和等于10,第1次匹配上时,程序结束
        */
        boolean flag = false;

        for (short i = 0; i < 10; ++i) {
            for (short j = 0; j < 10; ++j) {
                if ((i + j) == 10) {
                    flag = true;
                    System.out.println("两数之和为10,i=" i + ", j=" j);
                }
            }

            // 匹配上了,结束整个程序
            if (flag) {
                System.out.println("匹配上了,程序结束!");
                break;
            }
        }
    }
}

总结

break关键在循环控制方面有许多应用场景,适用面广,课下同学们需要勤加练习!今天的课程就到这,我们下期再见!

往期回顾

最近发表
标签列表