C++ 退出双层for循环,解决 break、return、continue无法实现问题

2023-05-16


遇到一个情景,采用双层for循环 遍历图像的像素,当找到某一个像素点满足条件时,退出双层for 循环 。


首先了解一下 continue、break、return 各自功能用法:


1.continue 语句的作用

      终止本次循环的执行,即跳过当前一次循环中continue语句后尚未执行的语句,然后进行下一次循环条件的判断。
2.break 语句的作用
    (1)当break在循环体内时,强行终止整个循环的执行,即结束整个循环过程,不再判断执行循环的条件是否成立,直接转向循环体下面的语句。
    (2)当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
'break' 用在循环语句块中, 只要执行到break语句, Matlab就会退出该循环, 但是它只能退出一层循环, 假如现在有内外两层循环, 在内层循环中执行break只会退出内层的循环.
break常和判断语句一起是使用.
3.return 语句的作用
     ( 1 ) return 从当前的方法中退出,返回到调用该方法的语句处,继续向下执行。
     ( 2 ) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
     ( 3 ) return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于中断函数执行,返回调用函数处。


其它参考: 

1、Java中break return continue 区别

2、break,continue,return的区别


因, break,无法跳出双层循环,

2个解决方案:

1、 将双层for循环 写到一个子函数里面,然后用return 进行返回,退出子函数 。

2、双层for循环不是单独的一个子函数,而是在一个主函数中,还有其它函数,此时用return,会导致整个函数结束,此时可以对双层for循环的两个变量进行同时赋值来终止双层for循环,注意,不能只将外层赋值终止值,否则会报错,因为内层还没有循环完毕,而外层已经超出范围,所以务必现将子循环变量终止后,再终止外循环变量。 代码如下:


  for (int i = 0; i < img.rows;i++){
	  for (int j = 0; j < img.cols;j++){
		  int elesum = rgb.at<Vec4b>(i, j)[0] + rgb.at<Vec4b>(i, j)[1] + rgb.at<Vec4b>(i, j)[2];
		  if (elesum> 0)
		  {
			i = img.rows;  j = img.cols; // 跳出双层 循环 赋值方式终止两个变量
			cout << "i: " << i << endl;
			cout << "j: " << j << endl;
			cout << endl;
			  //break;
		  }
	  }
  }























本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 退出双层for循环,解决 break、return、continue无法实现问题 的相关文章

  • tableView:viewForHeaderInSection: 默认值?

    我想要一个自定义节标题 其余部分是默认标题 UIView tableView UITableView tableView viewForHeaderInSection NSInteger section return 我应该返回什么才能提供
  • Python - 从 Tkinter 回调返回

    如何从作为 Tkinter 回调执行的函数中获取返回的对象 import Tkinter as Tk from functools import partial def square x return x x root Tk Tk var
  • 在php中,“return false”在echo语句之后会执行任何操作吗?

    当我在 php 中显示错误消息时 我通常这样做 if query Success code else Error message error msg An error occurred return false 我回应 error msg前
  • 使用 forEach() 返回数组值[重复]

    这个问题在这里已经有答案了 我希望返回存储在另一个对象中的数组的名称值 exports send function req res req body items forEach function item console log item
  • 如何在C++中“返回一个对象”?

    我知道这个标题听起来很熟悉 因为有很多类似的问题 但我要求问题的不同方面 我知道将东西放在堆栈上和将它们放在堆上之间的区别 在Java中我总是可以返回对 本地 对象的引用 public Thing calculateThing Thing
  • Java 编译器:停止抱怨死代码

    出于测试目的 我经常开始在现有项目中输入一些代码 因此 我想要测试的代码位于所有其他代码之前 如下所示 public static void main String args char a System out println int a
  • Python函数返回字典?

    我是一名 Python 初学者 我遇到了一个我不理解的函数的输出 我无法提供所有代码 因为其中一些是我公司的 IP 我基本上使用我们的一位开发人员编写的库从数据仓库中提取指标 然后我想在另一个应用程序中使用这个指标值 当我获得该值时 我会将
  • 在 PHP 中,为什么“or die()”可以工作,而“or return”却不行?

    在 PHP 中 您可以通过调用来处理错误or die当遇到某些错误时退出 如下所示 handle fopen location r or die Couldn t get handle Using die 不是处理错误的好方法 我宁愿返回一
  • F# 从 while 循环中中断

    有什么方法可以做到这一点C C 例如 C 风格 for int i 0 i lt 100 i if i 66 break 最简洁的答案是不 您通常会使用一些高阶函数来表达相同的功能 有许多函数可以让您执行此操作 对应于不同的模式 因此 如果
  • PHP 在函数中包含/需要

    是否可以在 PHP 函数内的包含文件中包含 return 语句 我希望这样做 因为我在单独的文件中有很多函数 并且它们在顶部都有大量共享代码 As in function sync include once file php echo Te
  • Ajax jquery 异步返回值

    我怎样才能让这段代码返回值无需冻结浏览器 当然 您可以用新方法重写它 function get char val merk var returnValue null ajax type POST async false url char i
  • 在 java 中返回多个原始对象。不推荐?

    我刚刚开始学习 Java 的 OOP 编程 我已经用 C 编写过一些程序 而我在 Java 中最怀念的事情之一就是可以返回多个值 确实 C 函数仅严格返回一个变量 但我们可以使用按引用参数返回更多变量 相反 在Java中我们不能做这样的事情
  • 在 while 循环内使用 try-finally 块[重复]

    这个问题在这里已经有答案了 当我在 while 循环中使用finally 时 我试图理解该机制 在下面的代码中 终于在行打印并比 while 中断 我预计代码不会到达finally 块 或者如果它到达finally块 则有no break在
  • 从 AspectJ 获取返回值或异常?

    我能够从建议的方法调用中获取签名和参数 但我无法弄清楚如何获取返回值或异常 我有点假设它可以通过使用 around 并继续以某种方式完成 您可以使用after returning and after throwing开头的建议以下文件 ht
  • 为什么“finally”中的 return 会覆盖“try”?

    try catch 块中的 return 语句如何工作 function example try return true finally return false 我期望这个函数的输出是true 但相反它是false Finally alw
  • 如何退出两个嵌套循环? [复制]

    这个问题在这里已经有答案了 我使用 Java 已经有一段时间了 但我对循环的了解还有些欠缺 我知道如何创建 java 中存在的每个循环并跳出循环 然而 我最近思考了这个问题 假设我有两个嵌套循环 我可以只用一个循环来打破这两个循环吗brea
  • 终止 Julia 数组理解中的 For 循环

    我在 Julia 中有以下代码行 X i i 2 for i in 1 100 if i 2 5 0 基本上 它返回一个元组列表 i i 2 from i 1 to 100如果剩余的i 2 and 5为零 我想做的是 在数组理解中 跳出 f
  • Scala 匿名函数中的 return 语句

    为什么显式 return 语句 使用return关键字 在匿名函数中从封闭的命名函数返回 而不仅仅是从匿名函数本身返回 例如 以下程序会导致类型错误 def foo String x Integer gt return x foo 我知道建
  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in
  • 使用 Windows (XP+) api 发送(串行)中断

    有没有比 setcommbreak delay clearcommbreak 序列更好的方法来发送串行中断 我必须与使用串行中断作为 115k2 上数据包开头的微控制器进行通信 而 setcommbreak 有两个问题 对于 115k2 中

随机推荐

  • ubuntu22.0.4 kolla多节点搭建openstack ,skyline

    kolla部署openstack 基础 更新软件包索引 span class token function sudo span span class token function apt span update 2 安装 Python 构建
  • 论文阅读 | Video Super-Resolution Transformer

    引言 xff1a 2021年用Transformer实现视频超分VSR的文章 xff0c 改进了SA并在FFN中加入了光流引导 论文 xff1a here 代码 xff1a here Video Super Resolution Trans
  • PostgreSQL12 windows zhparser插件安装

    zhparser https github com amutu zhparser 1 scws编译 因为zhparser需要使用scws进行中文分词先编译scws xff0c zhparser的README有scws源码的下载地址 http
  • WM_COMMAND消息

    当用户点击菜单 按钮 下拉列表框等控件时候 xff0c 会触发WM COMMAND LOWORD wParam 是控件或菜单或加速键的ID xff0c 菜单的sparator的ID为0 如果LOWORD wParam 是控件ID xff0c
  • windows简单调试器源码2700行左右代码

    简单调试器项目中on开头的函数为接收系统的调试事件并做相应的处理 xff0c 简单调试器实现过程中主要的调试事件为异常事件 xff0c 相应的处理函数为DispatchException 在异常事件中访问异常 int3异常 单步异常是跟实现
  • C语言头文件的作用

    C语言中的 h文件和我认识由来已久 xff0c 其使用方法虽不十分复杂 xff0c 但我却是经过了几个月的 不懂 时期 xff0c 几年的 一知半解 时期才逐渐认识清楚他的本 来面目 揪其原因 xff0c 我的驽钝和好学而不求甚解固然是原因
  • linux ip命令

    ip 是个命令 xff0c ip 命令的功能很多 xff01 基本上它整合了 ifconfig 与 route 这两个命令 xff0c 不过ip 的功能更强大 xff01 如果您有兴趣的话 xff0c 请自行 vi sbin ifup 就知
  • 推荐一个好的数据库工具Embarcadero DBArtisan

    最近的项目中用到了DB2数据库 xff0c 由于DB2数据库客户端在操作操作和控制方面不是很方便 xff0c 如存储过程的编写 后来我们在数据库的操作都转在DBArtisan上了 xff0c 最新版好像是8 12 下面介绍一下使用这个工具的
  • CISCO ACL配置详解

    什么是ACL xff1f 访问控制列表简称为ACL xff0c 访问控制列表使用包过滤技术 xff0c 在路由器上读取第三层及第四层包头中的信息如源地址 xff0c 目的地址 xff0c 源端口 xff0c 目的端口等 xff0c 根据预先
  • linux下挂载lvm分区方法

    1 首先使用vgscan 扫描 lvm 结果如下 root 64 localhost vgscan Reading all physical volumes This may take a while WARNING Duplicate V
  • ubuntu20.04xrdp远程桌面sh脚本

    Script Name xrdp installer 1 2 sh Description Perform xRDP installation on Ubuntu 16 04 18 04 19 04 19 10 and perform ad
  • H264视频编码原理

    一 为什么要对视频编码 视频是由一帧帧的图像组成 xff0c 就像gif图片一样 一般视频为了不会让人感觉到卡顿 xff0c 一秒钟至少需要16帧画面 一般30帧 加入该视频是一个1280x720的分辨率 xff0c 那么不经过编码一秒钟传
  • 从contiki中下载程序到TelosB节点

    编译下载步骤 step 1 编写好程序文件 xff0c 到程序文件所在目录 以hello world文件为例 cd 43 文件目录 step 2 xff1a 编译程序文件 make TARGET 61 sky hello world ste
  • Linux xrdp 问题(解决远程访问失败问题)

    开发中偶发机器无法远程登录服务器 xff0c 本地启用mstsc连接失败 xff0c 解决方法如下 xff1a 基本命令如下 xff1a 502 mount o remount rw 503 mount 504 systemctl star
  • 端到端多语言识别 语言不变性瓶颈特征

    中科院 LANGUAGE INVARIANT BOTTLENECK FEATURES FROM ADVERSARIAL END TO END ACOUSTIC MODELS FOR LOW RESOURCE SPEECH RECOGNITI
  • YAML 文件格式

    文件格式 https www jianshu com p 02e4a80026d0 from 61 timeline amp isappinstalled 61 0
  • linux 无法找到共享包时报错 ImportError: libSM.so.6: cannot open shared object file: No such file or directory

    https blog csdn net liuyingying0418 article details 84580254 在docker虚拟机下安装了opencv以后 xff0c 在使用的时候出现以下报错 xff0c Traceback m
  • java.lang.NullPointerException 空指针异常问题

    1 所谓的指针 xff0c 就是java中的对象的引用 比如String s 这个s就是指针 2 所谓的空指针 xff0c 就是指针的内容为空 xff0c 比如上面的s 如果令它指向null 就是空指针 3 所谓的空指针异常 xff0c 就
  • MATLAB的cat()函数

    原文地址 xff1a MATLAB的cat 函数 作者 xff1a 工程师 cat xff1a 用来联结数组 用法 xff1a C 61 cat dim A B 按dim来联结A和B两个数组 C 61 cat dim A1 A2 A3 按d
  • C++ 退出双层for循环,解决 break、return、continue无法实现问题

    遇到一个情景 xff0c 采用双层for循环 遍历图像的像素 xff0c 当找到某一个像素点满足条件时 xff0c 退出双层for 循环 首先了解一下 continue break return 各自功能用法 xff1a 1 continu