社区
C#
帖子详情
return 不能跳出foreach 循环?
liujuanwh
2004-08-24 12:09:32
return 不能跳出foreach 循环?
...全文
1232
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
跳出
循环
方法[代码]
如果在
forEach
的回调函数中使用
return
,它将只停止当前迭代的函数执行,并不会
跳出
整个
forEach
循环
,从而模拟了continue的效果。这种方式更易于理解和维护,但是需要注意的是,它只是跳过了回调函数的剩余部分,而...
JS
foreach
跳出
循环
[代码]
虽然这可以部分满足需求,但它
不能
完全终止整个`
forEach
`的执行。 其次是尝试使用`break`和`continue`。在`
forEach
`的回调函数中,使用`break`会抛出语法错误,因为`
forEach
`本身不是`switch`语句或`for`
循环
,没有...
js中Array.
forEach
跳出
循环
的方法实例.docx
### JavaScript 中 `Array.
forEach
`
跳出
循环
的方法实例 #### 概述 在JavaScript编程中,`Array.
forEach
` 是一种常用的数组迭代方法,用于遍历数组中的每一个元素,并执行相应的操作。然而,在某些场景下,我们...
Java 8跳过本次
循环
,继续执行以及
跳出
循环
,终止
循环
的代码实例
在Java 8的
foreach
循环
中,使用
return
语句可以跳过本次
循环
,但是这只会跳过当前
循环
,而不会
跳出
整个
foreach
循环
。例如: ```java private static void continue
Foreach
Java8(int max, List<String> list) { list...
Javascript数组
循环
遍历之
forEach
详解
如何
跳出
forEach
循环
使用`
forEach
`进行数组遍历时,由于没有直接提供`break`和`continue`语句,因此
不能
像传统的for
循环
那样直接
跳出
循环
。然而,可以通过以下两种方式间接达到
跳出
循环
的目的: - **通过`if`...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章