社区
C#
帖子详情
return 不能跳出foreach 循环?
liujuanwh
2004-08-24 12:09:32
return 不能跳出foreach 循环?
...全文
1219
15
打赏
收藏
return 不能跳出foreach 循环?
return 不能跳出foreach 循环?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liujuanwh
2004-08-26
打赏
举报
回复
解决了,应该在
IsContainGen(tb);
改成 if (IsContainGen(tb)) return true; 这样才对,如果IsContainGen(tb)为true,表示已找到,就逐层返回true;如果为IsContainGen(tb)为false不需要返回,只需继续寻找.
呵呵,谢谢各位了
Knight94
2004-08-24
打赏
举报
回复
把代码改成如下:
public static bool IsContainGen(Control page)
{
foreach(Control c in page.Controls)
{
if ( c is TextBox ) //在页面搜索到文本框就跳出,函数返回true
{
return true; //这一句只能结束此次循环,为什么跳不出for循环?
}
else
{
if (c.HasControls())
{
Control tb=c;
return IsContainGen(tb);
}
}
}
return false;
}
tailzhou
2004-08-24
打赏
举报
回复
你没判断内层的调用吧?
if (c.HasControls())
{
Control tb=c;
return IsContainGen(tb);
}
dazhu2
2004-08-24
打赏
举报
回复
郁闷!return可以退出整个函数 呀?!
huguojunsy
2004-08-24
打赏
举报
回复
你这是递归调用,每次调用IsContainGen()时,IsContainGen内部又可以调用他自己...........,所以跳出了某次调用可能只是返回上一层的调用而已。
liujuanwh
2004-08-24
打赏
举报
回复
public static bool IsContainGen(Control page)
{
foreach(Control c in page.Controls)
{
if ( c is TextBox ) //在页面搜索到文本框就跳出,函数返回true
{
return true; //这一句只能结束此次循环,为什么跳不出for循环?
}
else
{
if (c.HasControls())
{
Control tb=c;
IsContainGen(tb);
}
}
}
return false;
}
代码在此
int64
2004-08-24
打赏
举报
回复
return能跳出任何东西
holysky
2004-08-24
打赏
举报
回复
肯定可以,
是不是程序逻辑有问题没有执行到return或是外部有个循环的对此函数的调用?
ncucf
2004-08-24
打赏
举报
回复
不会吧,return就会退出这个函数了!
何况是foreach!
dsclub
2004-08-24
打赏
举报
回复
只要执行到这句return就会立刻退出函数体
dsclub
2004-08-24
打赏
举报
回复
可以D
liujuanwh
2004-08-24
打赏
举报
回复
这个函数默认就是把page.Controls搜索完,当找到符合要求的Control后就跳出递归返回true,如果搜完了还没找到就返回false
lxcc
2004-08-24
打赏
举报
回复
用break跳出for循环
Ejnstein
2004-08-24
打赏
举报
回复
......
else
{
if (c.HasControls())
{
Control tb=c;
IsContainGen(tb);
//return IsContainGen(tb);
}
}
......
函数没有出口,如果上一层递归调用完后,而page.Controls还没有枚举完,那么For each还要继续。
wacle
2004-08-24
打赏
举报
回复
举个例子来说明吧:
bool A()
{
...
if(x>0)
{ bool result=A();
//假如执行到以后N次调用后x=0,那么返回true给result,但只是那一层的函数A()调用,并没有返回到最外层,再加个return 就可以了
return result;
}
else
return true;
}
forEach
跳出
循环
方法[代码]
本文详细介绍了在JavaScript中使用
forEach
方法
跳出
循环
的两种方式:通过抛出异常实现break效果和通过
return
实现continue效果。与传统的for
循环
相比,
forEach
方法无法直接使用break和continue关键字,但其优势在于回调函数形成的作用域可以避免污染全局变量。文章通过代码示例展示了for
循环
和
forEach
循环
在
跳出
循环
时的不同实现方式,并总结了
forEach
方法的特点和局限性。
JS
foreach
跳出
循环
[代码]
本文探讨了在JavaScript中使用
forEach
方法时如何
跳出
循环
的问题。通常,for
循环
可以使用break或continue来
跳出
或跳过
循环
,但
forEach
方法由于其回调函数的特性,无法直接使用这两个关键字。文章通过示例代码展示了在
forEach
中使用
return
、break和continue的效果,发现
return
只能跳过当前
循环
(类似continue),而break和continue会导致报错。最后,作者提出了一种通过try catch抛出异常的方法来实现
forEach
循环
的提前终止,并提供了相应的代码示例。这种方法虽然可行,但需要注意异常处理的细节。
js中Array.
forEach
跳出
循环
的方法实例.docx
js中Array.
forEach
跳出
循环
的方法实例.docx
Java 8跳过本次
循环
,继续执行以及
跳出
循环
,终止
循环
的代码实例
今天小编就为大家分享一篇关于Java 8跳过本次
循环
,继续执行以及
跳出
循环
,终止
循环
的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
Javascript数组
循环
遍历之
forEach
详解
本篇文章主要介绍了Javascript 数组
循环
遍历之
forEach
详解,对学习
forEach
有很好的帮助,有需要的可以了解一下。
C#
111,120
社区成员
642,538
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章