zoukankan      html  css  js  c++  java
  • for循环里的break,continue和return有什么差别

    break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。

    如下代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public class Test {

        public static void main(String[] args) {

            for(int i=0; i<10; i++){

                if(i==5){

                    break;

                }

                System.out.print(i+" ");

            }

        }

    }

    可以看到程序输出了01234到5的时候跳出了循环

    continue:循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。

    把break改为continue

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public class Test {

        public static void main(String[] args) {

            for(int i=0; i<10; i++){

                if(i==5){

                    continue;

                }

                System.out.print(i+" ");

            }

        }

    }

    可以看到只有5没有输出,也即当i=5时没有执行打印操作,直接到下一次循环

    而return是表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return后函数就结束了,后面的语句不再执行

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    public class Test {

        public static void fun(){

            for(int i=0; i<10; i++){

                if(i==5){

                    return;

                }

                System.out.print(i+" ");

            }

            System.out.println("hello");

        }

        public static void main(String[] args) {

            fun();

        }

    }

    可以看到后面的hello并没有打印出来

  • 相关阅读:
    RTT startup.c 代码学习
    [RTT例程练习] 1.2 静态线程除初始化与脱离
    linux 下生成核心文件
    [RTT例程练习] 2.3 信号量检测按键(同步) (信号量互斥)
    [RTT例程练习] 1.6 线程优先级反转原理
    [RTT例程练习] 1.7 优先级翻转之优先级继承
    extern int Image$$RW_IRAM1$$ZI$$Limit
    [RTT例程练习] 1.1 动态线程创建,删除
    [RTT例程练习] 1.3 线程让出
    Linux操作系统下三种配置环境变量的方法
  • 原文地址:https://www.cnblogs.com/muhy/p/11603014.html
Copyright © 2011-2022 走看看