《C++入门经典(第5版•修订版)》——6.2 while循环

6.2 while循环

C++入门经典(第5版•修订版)
while循环导致程序重复执行一组语句,直到开始条件为false。在关键字while后面,将一个表达式放在括号内,如果该表达式为true,就执行循环块内的语句。这些语句将重复执行,直到表达式为false。

下面的while循环显示数字0~99:

关键字while后跟一个放在括号内的表达式。这条语句没有以分号结尾,而循环内的语句是一个放在{和}之间的语句块。

该循环包含条件表达式x < 100。只要x小于100,就执行循环体:显示x的值,并将其加1。

x为100后,该循环将结束。

如果没有使用递增运算符的语句x++,x的值将始终为0,而循环将永远不会结束,这称为无限循环。

在程序清单6.1中,程序Thirteens使用一个while循环显示可被13整除且小于500的所有数字。

程序清单6.1 Thirteens.cpp的完整源代码

程序Thirteens演示了while循环的基本原理:检查指定的条件,只要该条件为true,就不断执行循环体。第7行检查条件“变量counter是否小于500”,如果该条件为true,就执行循环体。

在第9行,将变量counter递增;在第10行,使用一条if语句检查counter的当前值能否被13整除,如果能,就显示它。

当counter不再小于500时,第7行的条件将为false,这导致while循环结束,而程序将跳过第8~14行,进入第16行继续执行。

6.2.1 退出循环

break语句导致循环立即终止,而不等待条件为false。程序清单6.2所示的程序Fourteens 演示了该语句,这个程序显示前20个可被14整除的数。

程序清单6.2 Fourteens.cpp的完整源代码

这个程序与程序Thirteens类似,它将变量counter从0开始递增,如果它的值能被14整除(第11行),就显示它。

第8行的while条件使用了一个不同寻常的表达式:

由于只要条件为true,while循环就将不断执行,这个循环被设计成无限循环。

第18行的break语句用于终止循环。使用变量multiples跟踪显示了多少个可被14整除的数,如果该变量大于19,就终止循环。

警告:
如果退出条件得不到满足,诸如while(true)等无限循环可能导致程序永远执行下去。对于自身不能结束的程序,可按Ctrl+C组合键终止执行。使用while(true)时要特别小心,并仔细测试代码。
6.2.2 跳到下一次循环
另一种改变循环行为的方式是使用continue语句。在循环中遇到continue语句时,将跳过余下的语句,开始下一次循环迭代。

程序清单6.3所示的程序Fifteens显示前20个可被15整除的数,它在while循环内部使用了一条continue语句。

程序清单6.3 Fifteens.cpp的完整源代码

程序Fifteens使用一个while循环将变量counter递增,这与本章前面的两个程序类似。第8行的while语句导致循环不断执行,直到显示了20个可被15整除的数。

第10行将变量counter递增。

第11行使用一条if语句检查变量counter能否被15整除。如果不能,就执行第13行,这导致跳过循环的其他部分,跳转到第8行继续执行。

如果变量counter能被15整除,就不执行continue语句,而执行循环中的第15~16行,即显示counter的值,并将变量multiples递增。

正如这些循环表明的,对于同一个任务,C++经常提供了多种完成任务的方式。您可根据喜好选择使用的方式,只要编写的程序能够满足需要。

时间: 2024-09-30 14:23:16

《C++入门经典(第5版•修订版)》——6.2 while循环的相关文章

《Java 7程序设计入门经典》一3.16 嵌套的循环

3.16 嵌套的循环 正如在前面的例子中看到的一样,一个循环可以嵌套在另一个循环里.嵌套的循环可以用来解决很多编程问题,是编程的必要部分.所以,在结束Java循环语句的解说前,再来关注一个嵌套循环的例子.下面的程序就对于2-100之间的整数,用一个嵌套的for循环找到每个数除1和它本身以外的所有因子.注意,外层循环产生需要获得因子的所有整数.内层循环判定整数的因子. 下面是程序的部分输出: 在这个程序中,外层循环使变量i从2变化到100.内层循环测试从2到i的每个整数,输出那些能将i整除的整数.

《C++入门经典(第5版•修订版)》——6.4 for循环

6.4 for循环 C++入门经典(第5版•修订版) 编写循环时,经常需要设置计数器变量.检查计数器变量是否满足条件并在每次循环迭代中修改该变量,如下面的while循环所示: 上述代码在一行中显示X 13次.for循环是一种复杂的循环,将这三个步骤合并到了一条语句中.该语句使用关键字for,后面是一对括号.在括号内,是三条用分号分隔的语句,它们分别初始化计数器.检查条件和修改计数器. 下面的代码是前述while循环的重写版本,其输出相同: for循环的第一部分是初始化.可在这里放置任何C++语句

《SAP入门经典(第4版•修订版)》——3.4 SAP数据库基础知识

3.4 SAP数据库基础知识 SAP入门经典(第4版•修订版) 掌握了硬件和操作系统的知识细节之后,现在我们可以把注意力转到在下层支持SAP业务应用的数据库了,看看它所承担的角色.在选择数据库时,还应像选择硬件平台和OS时一样慎重挑选.鉴于平台和SAP版本限制,您可能只有一两种数据库可选(这就凸显了把SAP基础设施作为一个整体计算平台加以考虑的重要性).主流的数据库SAP均能支持,包括Microsoft SQL Server(最终将可以搭配SQL Azure使用).IBM DB2和多种Oracl

《SAP入门经典(第4版•修订版)》——3.6 案例分析

3.6 案例分析 SAP入门经典(第4版•修订版)请阅读本章案例,并利用您刚刚学到的硬件.操作系统和数据方面的知识分析和处理下面的问题.您可以在附录A中找到与此案例分析相关的问题答案. 3.6.1 情境您的雇主MNC公司在Microsoft Windows和SQL Server系统上运行着最新版的SAP应用.最近MNC收购了Archaic制造公司(AMI),这是MNC的一大竞争对手,它也分别在运行着Oracle和DB2数据库的UNIX和大型机平台上运行着最新版的SAP应用程序.MNC希望根据自己

《SAP入门经典(第4版•修订版)》——3.3 能够支持SAP的操作系统

3.3 能够支持SAP的操作系统 SAP入门经典(第4版•修订版)从我们学习的角度来说,操作系统(OS)是一种特殊的软件,它使诸如数据库.SAP这样的应用程序能够使用计算机的处理能力.内存.磁盘.文件和网络连接以及其他资源.OS是硬件和应用程序进行交互的中间人.诸如Microsoft Windows Server.Red Hat和SUSE Linux以及许多UNIX的派生版(HP-UX.IBM AIX.Oracle Solaris等)等的操作系统都是当今的SAP环境中常见的系统.偶尔您还可以看到

《SAP入门经典(第4版•修订版)》——3.2 SAP硬件基础知识

3.2 SAP硬件基础知识 SAP入门经典(第4版•修订版)硬件是SAP系统最基本的组件.硬件由服务器(体积巨大.功能强劲的计算机).磁盘存储系统(从存储区域网络或网络附加存储,到基于云的虚拟存储空间,种类多样)和网络设备(如路由器.网络交换机以及安全防火墙等)构成.所有这些硬件必须协同工作才能构建成高效的SAP基础架构.如果技术架构设计不正确,或者只是简单地把一些硬件堆积起来搭建成的架构就会连接薄弱.潜在问题多多,从而导致问题接连不断.因此,合理的硬件架构和设计(SAP所谓的术语"适型&quo

《C++入门经典(第5版•修订版)》——2.6 问与答

2.6 问与答 C++入门经典(第5版•修订版)问:在C++程序中,字符#有何用途? 答: #符号指出当前代码行是一个编译指令:需要在程序编译器处理的命令.编译指令#include将指定文件的所有内容插入到当前位置.编译器看不到编译指令,相反,结果就像是在指定位置输入了文件的全部内容一样. 问:注释类型//和/*有何不同? 答:以//打头的注释是单行注释,到当前行行尾结束.以/打头的注释是多行注释,到下一个/处才结束.函数结束不会导致多行注释结束,只有添加了*/标志多行注释结束,否则编译器将报错

《C++入门经典(第5版•修订版)》——2.2 程序的组成部分

2.2 程序的组成部分 C++入门经典(第5版•修订版)您在第1章创建的程序Motto.cpp包含C++程序的基本框架.程序清单2.1再次列出了该程序的源代码,以便详细探索. 在编辑器中输入该程序时,记住不要包含其中的编号,提供它们旨在方便引用代码行. 程序清单2.1 Motto.cpp的完整源代码 这个程序生成一行输出,奥尔胡斯大学的校训: Solidum petit in profundis! 在程序清单2.1中,第一行包含了一个名为iostream的文件,导致编译器认为在这个地方输入的是文

《SAP入门经典(第4版•修订版)》——第3章 SAP技术基础知识 3.1 SAP技术101:SAP基础知识

第3章 SAP技术基础知识 经过前面章节的学习,我们已经对SAP的基本概念和使用SAP运行业务的意义有所了解了,现在我们要花一些时间讨论一下更深层的基本技术.本节我们将考察几个常用的与架构相关的技术术语,粗略地了解一下支持任何SAP应用程序都必不可少的3种核心技术:硬件.操作系统和数据库.本章最后我们要讨论一下这些技术是如何发挥作用的.即使您有着深厚的技术背景,本章的内容也仍然值得您花些时间进行了解. 3.1 SAP技术101:SAP基础知识 SAP入门经典(第4版•修订版)在第2章中,我们已经

《C++入门经典(第5版•修订版)》——6.7 问与答

6.7 问与答 C++入门经典(第5版•修订版)问:如何在if-else和switch之间做出选择? 答:如果多个else子句测试同一个表达式,就应考虑改用switch语句:如果需要进行比较测试,如a>b,则不能使用switch语句. 问:如何在while和do-while做出选择? 答:如果循环体至少需要执行一次,应考虑使用do-while循环:否则,尽可能使用while循环. 问:如何在while和for之间做出选择? 答:如果要初始化计数变量,且每次循环迭代都检查并递增该变量,应考虑使用f