C++编程中break语句和continue语句的学习教程

break 语句
break 语句可终止执行最近的封闭循环或其所在条件语句。 控制权将传递给该语句结束之后的语句(如果有的话)。

break;

备注
break 语句与 switch 条件语句以及 do、for 和 while 循环语句配合使用。
在 switch 语句中,break 语句将导致程序执行 switch 语句之外的下一语句。 如果没有 break 语句,则将执行从匹配的 case 标签到 switch 语句末尾之间的每个语句,包括 default 子句。
在循环中,break 语句将终止执行最近的 do、for 或 while 封闭语句。 控制权将传递给终止语句之后的语句(如果有的话)。
在嵌套语句中,break 语句只终止直接包围它的 do、for、switch 或 while 语句。 你可以使用 return 或 goto 语句从较深嵌套的结构转移控制权。
示例
以下代码演示如何在 for 循环中使用 break 语句。

#include <iostream>
using namespace std;

int main()
{
  // An example of a standard for loop
  for (int i = 1; i < 10; i++)
  {
    cout << i << '\n';
    if (i == 4)
      break;
  }

  // An example of a range-based for loop
int nums []{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  for (int i : nums) {
    if (i == 4) {
      break;
    }
    cout << i << '\n';
  }
}

在每个用例中:

1
2
3

以下代码演示如何在 while 循环和 do 循环中使用 break。

#include <iostream>
using namespace std;

int main() {
  int i = 0;

  while (i < 10) {
    if (i == 4) {
      break;
    }
    cout << i << '\n';
    i++;
  }

  i = 0;
  do {
    if (i == 4) {
      break;
    }
    cout << i << '\n';
    i++;
  } while (i < 10);
}

在每个用例中:

0
1
2
3

以下代码演示如何在 switch 语句中使用 break。 如果你要分别处理每个用例,则必须在每个用例中使用 break;如果不使用 break,则执行下一用例中的代码。

#include <iostream>
using namespace std;

enum Suit{ Diamonds, Hearts, Clubs, Spades };

int main() {

  Suit hand;
  . . .
  // Assume that some enum value is set for hand
  // In this example, each case is handled separately
  switch (hand)
  {
  case Diamonds:
    cout << "got Diamonds \n";
    break;
  case Hearts:
    cout << "got Hearts \n";
    break;
  case Clubs:
    cout << "got Clubs \n";
    break;
  case Spades:
    cout << "got Spades \n";
    break;
  default:
     cout << "didn't get card \n";
  }
  // In this example, Diamonds and Hearts are handled one way, and
  // Clubs, Spades, and the default value are handled another way
  switch (hand)
  {
  case Diamonds:
  case Hearts:
    cout << "got a red card \n";
    break;
  case Clubs:
  case Spades:
  default:
    cout << "didn't get a red card \n";
  }
}

continue 语句
强制转移对最小封闭 do、for 或 while 循环的控制表达式的控制。
语法

continue;

备注
将不会执行当前迭代中的所有剩余语句。确定循环的下一次迭代,如下所示:
在 do 或 while 循环中,下一个迭代首先会重新计算 do 或 while 语句的控制表达式。
在 for 循环中(使用语法 for(init-expr; cond-expr; loop-expr)),将执行 loop-expr 子句。然后,重新计算 cond-expr 子句,并根据结果确定该循环结束还是进行另一个迭代。
下面的示例演示了如何使用 continue 语句跳过代码部分并启动循环的下一个迭代。

// continue_statement.cpp
#include <stdio.h>
int main()
{
  int i = 0;
  do
  {
    i++;
    printf_s("在继续之前\n");
    continue;
    printf("在继续之后,不被输出\n");
   } while (i < 3);

   printf_s("在do循环之后\n");
}

输出:

在继续之前
在继续之前
在继续之前
在do循环之后
时间: 2016-01-13

java中break和continue源码解析

在自己学习java语言的过程中,很容易把break和continue的用法混淆.为了便于以后快速查阅及温习,在此特留学习笔记一份. 简述 在任何迭代语句的主体部分,都可以用break和continue控制循环的流程.其中,break用于强行退出循环,不执行循环中剩余的语句.而continue则停止执行当前迭代,然后退回循环起始处,开始下一次迭代. 源码 下面这个程序向大家展示了break和continue在for和while循环中的例子: package com.mufeng.thefourth

javaScript如何跳出多重循环break、continue

先来说说break和continue之间的区别 摘自JavaScript高级程序设计 for(var i=0;i<10;i++){ if(i>5){ break; } } console.log(i); ---6 •当i=5和10的时候,会执行到break,并退出循环 for(var i=1;i<10;i++){ if(i>5){ continue; } num++; } console.log(num); ---4 var num=0; for(var i=1;i<10;i

关于break和continue以及label的区别和作用(详解)

break和continue的区别和作用: break用于完全结束一个循环[一般只退出一重循环],跳出循环体执行循环后面的语句 continue是跳过当次循环中剩下的语句,执行下一次循环. 标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中碰到break时, 不管其它控制变量,都会终止.但是,当你嵌套在几层循环中想退出循环时又怎么办呢?break只退出一重循环, 但你可以用标号label标出你想退出哪一个语句.规定标号label必需放在循环之前(意味着循

C/C++ break和continue区别及使用方法

C/C++ break和continue区别及使用方法 break可以离开当前switch.for.while.do while的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较.在for.while与do while中,主要用于中断目前的循环执行. continue的作用与break类似,主要用于循环,所不同的是break会结束程序块的执行,而continue只会结束其之后程序块的语句,并跳回循环程序块的开头继续下一个循环,而不是离开循环. 1. #incl

详解Kotlin:forEach也能break和continue

详解Kotlin:forEach也能break和continue 这样的问题.也就是说,他们想用forEach而不是for循环,因为这很fp,很洋气(我也喜欢), 但是他们又想使用break和continue,也就是普通的流程控制语句中的控制语句. 这很不fp,因为原本有filter是用于完成这个工作的,还有flapMap.BennyHuo在他发的文章里面也说的是这种方法. filter很fp,但是会导致两次遍历,这样的话给人一股效率很低的赶脚.而Java8的Stream API就只会遍历一次,

详解Kotlin 高阶函数 与 Lambda 表达式

详解Kotlin 高阶函数 与 Lambda 表达式 高阶函数(higher-order function)是一种特殊的函数, 它接受函数作为参数, 或者返回一个函数. 这种函数的一个很好的例子就是 lock() 函数, 它的参数是一个锁对象(lock object), 以及另一个函数, 它首先获取锁, 运行对象函数, 然后再释放锁: fun <T> lock(lock: Lock, body: () -> T): T { lock.lock() try { return body()

详解Kotlin Android开发中的环境配置

详解Kotlin Android开发中的环境配置 在Android Studio上面进行安装插件 在Settings ->Plugins ->Browse repositores.. ->kotlin 安装完成后重启Android Studio就生效了 如图所示: 在Android Studio中做Kotlin相关配置 (1)在根目录 的build.gradle中进行配置使用,代码如下: buildscript { ext.kotlin_version = '1.1.2-4' repos

详解Kotlin中的面向对象(二)

详解Kotlin中的面向对象(二) 在Kotlin中的面向对象(一)中,介绍了Kotlin类的相关操作,本文将在上文的基础上,继续介绍属性.接口等同样重要的面向对象的功能. 属性 class AttrDemo{ private var attr1 : String = ""; protected var attr2 : String = ""; public var attr3 : String = ""; var varattr : Strin

详解Kotlin中的变量和方法

详解Kotlin中的变量和方法 变量 Kotlin 有两个关键字定义变量:var 和 val, 变量的类型在后面. var 定义的是可变变量,变量可以被重复赋值.val 定义的是只读变量,相当于java的final变量. 变量的类型,如果可以根据赋值推测,可以省略. var name: String = "jason" name = "jame" val max = 10 常量 Java 定义常量用关键字 static final, Kotlin 没有static,

详解Kotlin的空指针处理

详解Kotlin的空指针处理 Kotlin的空指针处理相比于java有着极大的提高,可以说是不用担心出现NullPointerException的错误,kotlin对于对象为null的情况有严格的界定,编码的阶段就需要用代码表明引用是否可以为null,为null的情况需要强制性的判断处理. 咋看一下这些在java里面其实也有,问题是一般开发中不写也是可以的(大部分开发不会花很多时间考虑这些),等出了空指针错误再一个个打补丁.这样往往会遗漏很多空指针,后期的解决仅仅是做一个if判断,没有从根源解决

详解 Kotlin Reference Basic Types, String, Array and Imports

详解 Kotlin Reference  Basic Types, String, Array and Imports 基本数据类型 Kotlin中支持的基本数据类型及它所占Bit宽度: Type Bit width Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 Char 在kotlin中 并不是一个数值类型 kotlin不支持8进制, 支持 2.10.16进制 下面的代码,示例了: 关于2.10.16进制: 使用下划线在数值常量赋值数据中:

详解Kotlin中如何实现类似Java或C#中的静态方法

大家可以在网络上搜到不少这样的文章,官方推荐是包级函数,也有人说用伴生对象(companion class).这些都是不错的选择,但并不完善,我们在不同的情况下有更好的选择.我总结了几种方法,分别是:包级函数.伴生对象.扩展函数和对象声明.这需要大家根据不同的情况进行选择. 一.包级函数 Kotlin和Java及C#不同的是,可以在包里面直接声明函数.做法和类中是一样的,这里就不多说了,的确是一个非常好的选择.适用于函数不需要不包内部的类进行数据共享的方法. 二.伴生对象 从语义上来讲,伴生函数

详解Kotlin和anko融合进行Android开发

kotlin是一门基于jvm的编程语言,最近进行了关于kotlin和 anko的研究.并且结合现在的APP设计模式,设想了初步的开发方式.并且准备应用在新的项目中. Kotlin和anko Kotlin是大名鼎鼎的JB公司开发的jvm语言,官网地址为:http://kotlinlang.org/ 官网的介绍为: Statically typed programming language for the JVM, Android and the browser Kotlin的设计思想非常的轻量,尽

详解mybatis foreach collection示例

在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内.它也允许你指定开放和关闭的字符串,在迭代之间放置分隔符.这个元素是很智能的,它不会偶然地附加多余的分隔符. 下面是一个演示示例: <select id="findByIdsMap" resultMap="BaseResultMap"> Select <includ