社区
C#
帖子详情
return 不能跳出foreach 循环?
liujuanwh
2004-08-24 12:09:32
return 不能跳出foreach 循环?
...全文
1172
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;
}
jquery进行数组遍历如何
跳出
当前的each
循环
最近在忙着进行官网改版,在做其中的一个项目时碰到了一个小问题。问题是这样的,通过 jquery 的
循环
方法进行数组遍历,但是当不符合条件时,怎么
跳出
当前
循环
。 我是使用 $.each() 进行数组
循环
遍历,但是当进入判断时,不清楚该如何
跳出
当前
循环
,于是我就用 javascript 的方法——continue 发现并不正确。API 上的说明只有
跳出
整个
循环
(如果需要退出 each
循环
可使回调函数返回 false,其它返回值将被忽略。) 后来上网查了下,得到了结果:
return
false;——
跳出
所有
循环
;相当于 javascript 中的 break 效果。
return
true;——
使用angularjs.
foreach
时
return
的问题解决
主要介绍了使用angularjs.
foreach
时
return
的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
《Java基础入门》第二篇1 基本数据类型,运算符与表达式,条件结构,
循环
结构
4)学习switch多分支语句的用法 (4)
循环
结构 1)While用法 2)do..while用法 3)for用法(包含
foreach
) 4)...
java中
forEach
循环
里面遇到
return
怎么没有整体退出
forEach
循环
?
java中
forEach
循环
里面遇到
return
怎么没有整体退出
forEach
循环
?
return
不能
跳出
forEach
循环
来自一道面试题的小记 如图: 输出结果为 4 知识点 :
forEach
循环
不能
被
return
终止,其作用和 for
循环
中的continue 相似 只是
跳出
当前
循环
,继续执行下一次
循环
, 在
forEach
中也
不能
使用 break,continue 来
跳出
循环
同样会有报错 let list = ['1', '2', 'hell', 'js']; let i = 0, j = 0;...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章