continue语句的作用是结束整个循环的执行吗?

continue 语句的作用是结束本次循环,跳过循环体中剩余的语句而强制进入下一次循环(回到循环体的开头准备再次执行循环体)。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。

使用方式

continue语句只在循环语句中。

在循环体中的语句集合执行中,continue语句用于结束本次循环。在for循环中跳至执行循环步长语句,以准备测试下一次循环的条件;在while循环中,则直接跳到循环条件测试。例如,下面的代码把100~200之间能被3整除的数提出,其余的都能输出:

for(int n=100;n<=200; n)
{
    if(n%3==0)
    continue;
cout<<n<<endl;
}

非必要性

continue语句总是有条件执行的。

循环体中,语句执行到含有continue语句的条件语句时,可以将后面的语句集合分成两部分,其中第一部分中含有continue语句:

循环体:

{...}
if(条件)

    {第一部分(包含continue语句)}

{第二部分}

    通过将if(){}语句改写成if-else语句,可将continue语句省略掉,并且逻辑语义不变: 

循环体:
{...}
if(条件)
    {第一部分}
else
    {第二部分}

如果本来就如上面改写之后的循环体结构,那么continue语句根本就是多余的,因为执行了if语句的第一部分,通过if结构就直接跳过属于else的第二部分了。

如果第一部分只有一条continue语句,则在省略了continue语句之后,得到:

if(条件)

{}

else

{第二部分}

//他可以改写成:

if(!条件)

{第二部分}

也就是说,只要把条件反一下,就可以完成改写。例如,使用方式中的一段代码可以表示为:

for (int n=100; n<=200; n)
    if(n%3!=0)
    cout<<n<<endl;

得到没有continue语句的代码。因此,循环中的continue语句并不是必须的。

循环体描述计算过程。在使用continue的地方,对于在非必要性一段中所描述的第一部分和第二部分集合:

(1)不应该是并列计算功能的结构,因为,并列结构用if-else语句可以描述得更清楚,不需要continue语句;

(2)其主计算也不在第一部分,因为,用一个if语句把主计算框起来,并用continue语句排斥后续部分,在设计上有点头重脚轻。

当循环体在执行主计算过程中,使用continue语句适当过滤一些不符合主计算条件的情形,可以使逻辑结构清晰。

大多数循环体的结构都不会很复杂,因为采用合理的编程方法可以适当避免过程体过分庞大。如果优化等处理使循环体简洁起来的时候,不失时机地使用continue语句,便可以使结构更加清晰。

continue与break的区别
continue语句和break语句的区别是:

continue语句只结束本次循环体的执行,而不是中止整个循环,而break语句则是结束本循环语句,不再进行循环条件判断。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。


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

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

相关文章

linux 远程权限不够,Eclipse连接远程Hadoop集群开发时权限不足问题解决方案

eclipse连接远程Hadoop集群开发时报错Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: userd, accessWRITE, inode"data":zxg:supergroup:rwxr-xr-xat org.apache.hadoop.hdfs.server.namenode.FSPerm…

jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容

jsp导入jstl标签库除了在JSP中编写自己的定制标记之外&#xff0c;您还将发现Java EE实际上提供了一组Java标准标记库&#xff08;JSTL&#xff09;供您使用。 这些内置标签包括重复&#xff08;for-loop&#xff09;标签&#xff0c;条件标签&#xff0c;变量声明和输出标签等…

一文掌握 C 智能指针的使用

RAII 与引用计数了解 objective-C/Swift 的程序员应该知道引用计数的概念。引用计数这种计数是为了防止内存泄露而产生的。基本想法是对于动态分配的对象&#xff0c;进行引用计数&#xff0c;每当增加一次对同一个对象的引用&#xff0c;那么引用对象的引用计数就会增加一次&a…

linux里面启用无线网卡,linux启用无线网卡上网

1、使用cat /proc/version查看linux内核版本号&#xff0c;我的系统是Linux version 2.6.32-220.el6.i6862、使用cat /etc/issue查看linux发行版本号&#xff0c;我的系统是Red Hat Enterprise Linux Server release 6.2 (Santiago)现在 进入正题&#xff0c;如何在redhat linu…

fwrite函数的一般调用形式是什么?

fwrite() 是C 语言标准库中的一个文件处理函数&#xff0c;功能是向指定的文件中写入若干数据块&#xff0c;如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作&#xff0c;不局限于文本文件。语法&#xff1a;fwrite(buffer,size,count,fp)参数&#x…

java 不同类型 映射_如何使用Java泛型映射不同的值类型

java 不同类型 映射有时&#xff0c;一般的开发人员会遇到这样的情况&#xff0c;即他必须在特定容器内映射任意类型的值。 但是&#xff0c;Java集合API仅提供与容器相关的参数化。 例如&#xff0c;这将HashMap的类型安全使用限制为单个值类型。 但是&#xff0c;如果您想混合…

linux vim自动换行,VIM 的自动换行及自动折行设置

VIM 的自动换行及自动折行设置以 .vimrc 文件中的设置为例&#xff1a;" 自动换行是每行超过 n 个字的时候 vim 自动加上换行符" 需要注意的是&#xff0c;如果一个段落的首个单词很长&#xff0c;超出了自动换行设置的字符&#xff0c;" 这种情况下不会换行。&…

lambdas 排序_Java8 Lambdas:解释性能缺陷的排序

lambdas 排序与Peter Lawrey合作撰写 。 几天前&#xff0c;我对使用新的Java8声明式的排序性能提出了一个严重的问题。 在这里查看博客文章。 在那篇文章中&#xff0c;我仅指出了问题&#xff0c;但在这篇文章中&#xff0c;我将更深入地了解和解释问题的原因。 这将通过使用…

strncmp函数用法是什么

strncmp函数用法&#xff1a;函数原型int strcmp(char *str1,char * str2&#xff0c;int n)功能比较字符串str1和str2的前n个字符。头文件#include 返回值返回值&#xff1a;返回整数值&#xff1a;当str1<str2时&#xff0c;返回值<0&#xff1b; str1"str2时&…

cepl进程 Linux,Ubuntu下NS2-2.33安装过程

首先安装下列软件包# sudo apt-get install build-essential# sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev# sduo apt-get install libxmu-dev libxmu-headers再下载NS2软件&#xff0c;(http://jaist.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.33.tar…

分享10个适合初学者学习的C开源项目代码

1.WebbenchWebbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL&#xff0c;测试网站在压力下工作的性能&#xff0c;最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbench 使用C语言编写&#xff0c; 代码实…

tomcat与tomee_Apache TomEE(和Tomcat)的自签名证书

tomcat与tomee可能在大多数Java EE项目中&#xff0c;您将拥有具有SSL支持&#xff08; https &#xff09;的部分或整个系统&#xff0c;因此浏览器和服务器可以通过安全连接进行通信。 这意味着在处理数据之前&#xff0c;已发送的数据已加密&#xff0c;传输并最终解密。 …

linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

运维 - linux(ubuntu) 环境变量管理 (持续更新)注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包.一, 查看环境变量:方法 1: 直接用 $PATH 命令:wafaubuntu:~$ $PATHbash:/home/king/bin:/home/king/.local/bin:/usr/local/sbin:/usr/local/bin…

C 线程的使用~(上)

C 11 之前&#xff0c;C 语言没有对并发编程提供语言级别的支持&#xff0c;这使得我们在编写可移植的并发程序时&#xff0c;存在诸多的不便。现在 C 11 中增加了线程以及线程相关的类&#xff0c;很方便地支持了并发编程&#xff0c;使得编写的多线程程序的可移植性得到了很大…

k8s中graphite_在Graphite中存储Hystrix的几个月历史指标

k8s中graphiteHystrix的杀手级功能之一是低延迟&#xff0c;数据密集和美观的仪表板 &#xff1a; 即使这只是Hystrix实际操作的副作用&#xff08;断路器&#xff0c;线程池&#xff0c;超时等&#xff09;&#xff0c;它也往往是最令人印象深刻的功能。 为了使其工作&#…

linux下gate版本管理,Linux安装使用GoldenGate

如何安装使用goldengate一.环境:OS&#xff1a;linux CentOS_Final_5.5(64bit)DB&#xff1a;oracle11gR2(单机模式)goldengate: ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar网络&#xff1a;局域网&#xff0c;源端IP 192.168.128.100 镜像端IP 192.168.128.101二&…

C语言中的“三字母词”坑了工程师

某软件工程师接盘了前同事的项目&#xff0c;进度一拖再拖&#xff0c;最后发现问题出现在如下代码&#xff1a;// 注释语句 ??/2a b c;请注意代码中的“??/”&#xff0c;就是这注释隐藏的很深&#xff0c;让项目一拖再拖。"??/"会被编译器当作 /&#xff0c…

guice 实例_使用Google Guice消除实例之间的歧义

guice 实例如果接口有多个实现&#xff0c;则Google guice提供了一种精巧的方法来选择目标实现。 我的示例基于Josh Long &#xff08; starbuxman &#xff09;的出色文章&#xff0c;内容涉及Spring提供的类似机制。 因此&#xff0c;请考虑一个名为MarketPlace的接口&#…

linux uboot 源码分析,UBoot源码分析1.pdf

UBoot源码分析1• UBoot源码解析(一)主要内容• 分析UBoot是如何引导Linux内核• UBoot源码的一阶段解析BootLoader概念• Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序&#xff0c;我们可以初始化硬件设备、建立内存空间的映射图&#xff0c;从而…

C 线程的使用~(下)

2.3 detach()detach() 函数的作用是进行线程分离&#xff0c;分离主线程和创建出的子线程。在线程分离之后&#xff0c;主线程退出也会一并销毁创建出的所有子线程&#xff0c;在主线程退出之前&#xff0c;它可以脱离主线程继续独立的运行&#xff0c;任务执行完毕之后&#x…