c++语言中break的作用,C++ break和continue用法详解

用于 switch 中的 break 语句也可以放在循环中,当遇到 break 时,循环立即停止,程序跳转到循环后面的语句。

以下是一个带有 break 语句的循环示例。程序段中的 while 循环看起来要执行 10 次,但 break 语句导致它在第 5 次迭代后即停止:

int count = 1;

while (count <= 10)

{

cout << count << endl;

count++;

if (count == 6)

break;

}

这个例子只是为了说明在循环中的 break 语句的作用。通常不会有人以这种方式来使用它,因为它违反了结构化编程的规则,并使代码难以理解、调试和维护。

一个循环的退出应该通过循环顶部的条件测试来控制,就像在 while 循环或 for 循环中那样,或者在底部,就像在 do-while 循环中那样。通常在循环中使用 break 语句的唯一时间是在发生错误的情况下提前退出循环。下面的程序提供了这样一个示例:

#include

#include

using namespace std;

int main()

{

double number;

cout << "Enter 5 positive numbers separated by spaces and \n" << "I will find their square roots: ";

for (int count = 1; count <= 5; count++)

{

cin >> number;

if (number >= 0.0)

{

cout << "\nThe square root of " << number << " is " << sqrt(number) <

}

else

{

cout << number << " is negative. " << "I cannot find the square root of a negative number. The program is terminating.\n";

break;

}

}

return 0;

}

程序输出结果:

Enter 5 positive numbers separated by spaces and I will find their square roots: 12 15 -17 19 31

The square root of 12 is 3.4641

The square root of 15 is 3.87298

-17 is negative. I cannot find the square root of a negative number. The program is terminating.

在嵌套循环中使用 break

在嵌套循环中,break 语句只会中断其所在位置的循环。以下程序段在屏幕上显示 5 行星号。外部循环控制行数,内部循环控制每行中的星号数。内部循环设计为显示 20 个星号,但是 break 语句使循环在第 11 次迭代中停止。

for (row = 0; row < 3; row++)

{

for (star = 0; star < 20; star++)

{

cout << '*';

if (star == 10)

break;

}

cout << endl;

}

该程序段的输出结果如下:

***********

***********

***********

continue 语句

有时候可能想要保持循环,但又想让当前迭代立即结束,这时可以通过continue 语句来完成。

当遇到 continue 时,出现在它之后的循环体中的所有语句都被忽略,循环准备下一次迭代。在 while 循环中,这意味着程序跳转到循环顶部的测试表达式。如果表达式仍然为 true,则下一次迭代开始,否则,循环退出。在 do-while 循环中,程序跳转到循环底部的测试表达式,它决定下一次迭代是否开始。在 for 循环中,continue 会导致更新表达式被执行,然后测试表达式被评估。

以下程序段表示在 while 循环中使用 continue:

int testVal = 0;

while (testVal < 10)

{

testVal++;

if (testVal) == 4

continue; //终止循环的该次迭代

cout << testVal << " ";

}

这个循环看起来像是要显示整数 1〜10。但是,其实际输出如下:

1 2 3 5 6 7 8 9 10

请注意,数字未不打印。这是因为当 testVal 等于 4 时,continue 语句会导致循环跳过 cout 语句并开始下一次迭代。

注意,与 break 语句一样,continue 语句违反了结构化编程规则,使得代码难以理解、调试和维护。因此,应该谨慎使用 continue。

当然,continue 语句有一些实际用途,下面的程序说明了其中的一个应用。该程序计算 DVD 租赁的费用,current releases 版本费用为 3.50 美元,所有其他版本费用为 2.50 美元。如果一个客户租了几张 DVD,每 3 张有 1 张是免费的。continue 语句用于跳过计算每个第 3 张 DVD 费用的循环部分。

#include

#include

using namespace std;

int main()

{

int numDVDs; // Number of DVDs being rented

double total = 0.0; // Accumulates total charges for all DVDs

char current; // Current release? (Y/N)

// Get number of DVDs rented

cout << "How many DVDs are being rented?";

cin >> numDVDs;

//Determine the charges

for (int dvdCount = 1; dvdCount <= numDVDs; dvdCount++)

{

if (dvdCount % 3 == 0)// If it's a 3rd DVD itT s free

{

cout <

continue;

}

cout << "Is DVD #" << dvdCount << " a current release (Y/N) ? ";

cin » current;

if ( (current == 'Y') || (current == 'y'))

total += 3.50;

else

total += 2.50;

}

//Display the total charges

cout << fixed << showpoint << setprecision(2);

cout << "The total is $" << total << endl;

return 0;

}

程序输出结果:

How many DVDs are being rented? 6

Is DVD #1 a current release (Y/N) ? y

Is DVD #2 a current release (Y/N) ? n

DVD #3 is free!

Is DVD #4 a current release (Y/N)? n

Is DVD #5 a current release (Y/N)? y

DVD #6 is free!

The total is $12.00

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年人工智能13大预测

来源&#xff1a;英伟达概要&#xff1a;2017 年人工智能领域取得了许多里程碑式的成果。那么&#xff0c;以后人工智能又会如何发展呢&#xff1f;2017年被《华尔街日报》、《福布斯》和《财富》等刊物称为“人工智能之年”。各种深度学习在线课程不断推出&#xff0c;接受相关…

ORACLE 多版本读一致性

先来看看这段代码&#xff1a;while s in (select * from table1) loopinsert into table1 values(s.field1,s.field2,s.field3,s.field4,s.field5);end loop;如果是SQL server的开发人员&#xff0c;看到这段代码&#xff0c;肯定会摇头&#xff1a;这段代码有问题&#xff0c…

自动点名系统c语言,用C语言编写一个随机点名系统

/*编写一个随机点名系统&#xff0c;运行该系统后&#xff0c;按空格键可以显示出一名同学&#xff0c;以前被选中的同学&#xff0c;将不会再次被选中*/#include /*standard input & output*/#include /*standard libary*/#include /*string*/#include /*Console Input/Ou…

2017年全球AI芯片公司大盘点

来源&#xff1a;芯师爷概要&#xff1a;2017年&#xff0c;我们被AI公司的融资信息一次次刷屏&#xff0c;从2千万到1亿美金&#xff0c;让我惊诧道&#xff0c;AI的黄金年代真的来了吗&#xff1f;2017年&#xff0c;我们被AI公司的融资信息一次次刷屏&#xff0c;从2千万到1…

Oracle常用sql操作总结

一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] 字段名1 解释 FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询的时候比较有用 NVL函数可返回多种数据类型: 返回日期 NVL(start_date,2002-02-01) 返回字符串 NVL(title…

51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

/******************************************************************************** 实验名 : 红外控制步进电机1602显示值实验* 使用的IO : 电机用P2口* 实验效果 : LCD1602显示出读取到的红外线的值&#xff0c;步进电机作出…

邬贺铨:工业物联网的技术与前景

来源&#xff1a;走向智能论坛概要&#xff1a;工业物联网是企业信息化的进程&#xff0c;我们经历了流程电子化、管理数字化、生产自动化到企业互联网化和企业智能化。邬贺铨&#xff1a;工业物联网靠花钱是买不到的&#xff01;12月20日&#xff0c;2017第八届中国物联网产业…

约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼主要问题在于删除约瑟夫环的数,结果一直出不来,看了好几天改了好几次都改不对#include #include typedef struct ysf{int num;struct ysf*next;}YSF;YSF*creat(int aa[]){int i;YSF *headNULL,*p1NULL,*p2NULL;headp1p2(YSF*)mallo…

Windows平台下GO语言编译器(GO-windows)

go for windows下载:http://code.google.com/p/go-windows/ ,http://savechina.download.csdn.net/使用前需要dos执行set GOROOT<the go folder>set GOOSmingwset GOARCH386set PATH<the go folder>/bin编译执行test.go文件需要执行8g test.go //编译生成test.88l …

30亿美金投入!一文读懂英伟达性能凶残的Tesla V100牛在哪?

来源&#xff1a;智东西概要&#xff1a;AI已无处不在&#xff0c;两股力量正推动计算机领域的未来。GTC CHINA 2017大会上&#xff0c;英伟达创始人兼CEO黄仁勋表示&#xff0c;AI已无处不在&#xff0c;两股力量正推动计算机领域的未来。第一、摩尔定律已终结&#xff0c;设计…

WPF Border

在 WPF 中&#xff0c;Border 是一种常用的控件&#xff0c;用于给其他控件提供边框和背景效果。 要使用 Border 控件&#xff0c;您可以在 XAML 代码中添加以下代码&#xff1a; <Border BorderBrush"Black" BorderThickness"2" Background"Lig…

C语言的数组基础,C语言基础-数组

一、数组(一维数组)什么是数组&#xff1f;数组是一组有序的、类型相同的数据的集合数组的作用&#xff1f;处理一些类型相同的数据集合数组的构成&#xff1a;元素、下标或索引、数组名定义&#xff1a;使用前必须定义1、存储类型2、数据类型3、数组名4、数组大小语法&#xf…

Go语言,在Ubuntu9.10和Windows安装

工作环境&#xff1a;Ubuntu9.10A、安装C语言工具Go的工具链采用C语言编写&#xff0c;构建需要安装以下开发工具&#xff1a;GCC,C语言标准库,the parser generator Bison,make,awk, 和ed &#xff08;编辑器&#xff09;.对于 OS X 系统&#xff0c;以上工具是Xcode的一部分。…

世界类脑AI巨系统研究综述,论ET大脑是不是全球首个类脑架构AI

前言&#xff1a;2017年12月20日阿里云云栖大会提出ET大脑&#xff0c;并宣称为全球首个类脑架构AI&#xff0c;本文详细介绍了类脑AI系统的理论研究和发展现状&#xff0c;分析了ET大脑理论的沿袭与借鉴。并指出企业为提升影响里推动新概念新理论无可厚非&#xff0c;但涉及到…

n元n次方程求解c 语言,解n元一次方程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼解N元一次方程从文件读入整数 N, 然后读入N*( N1)矩阵&#xff0c;得到解并输出到文件中。int main(){int ch;printf("\n");printf(" Gaussian Matrix Cal \n");printf("\n");printf("Choose:…

我为什么喜欢Go语言

来源&#xff1a;http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今&#xff0c;也写了11年代码了&#xff0c;期间用过VB、Delphi、C#、C、Ruby、Python&#xff0c;一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效…

Netflix 官方技术博客:个性化分发与推荐,走在前列的 Netflix 是怎么做的?

来源&#xff1a;36氪概要&#xff1a;对于个性化分发与推荐&#xff0c;Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。对于个性化分发与推荐&#xff0c;Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。近日&#…

android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

androidmanifest.xml文件的作用&#xff1a;1、是每个android程序中必须的文件&#xff0c;它位于整个项目的根目录&#xff1b;2、配置程序运行所必要的组件&#xff0c;权限&#xff0c;以及一些相关信息&#xff1b;3、是整个应用的入口&#xff0c;所以有助于更加深入的理解…

盘点丨2017年亚洲新晋18家独角兽公司

来源&#xff1a;网易科技概要&#xff1a;在投资领域&#xff0c;当一个创业公司估值达到10亿美元时&#xff0c;人们就称它加入了独角兽俱乐部。在投资领域&#xff0c;当一个创业公司估值达到10亿美元时&#xff0c;人们就称它加入了独角兽俱乐部。据国外媒体Tech in Asia报…

LiteIDE 编写Go的单元测试

第一步&#xff1a;新建一个 package "even" 第二步&#xff1a;编写代码 // even project even.go package evenfunc Even(i int)bool{return i%20 }func odd(i int)bool{return i%21 }第三步&#xff1a;在包 even 下新建测试文件 even_test.go第四步&#xff1a;…