[英]Nested foreach loops c#
foreach (int i in a.set)
{
foreach (int k in b.set)
{
if (i < k)
{
return true;
}
else if (i > k)
{
return false;
}
}
}
return false;
}
我有两组,一组包括3,4,6 b。一组包括3,4,5
问题是外循环仅迭代一次。 但是它包含3个元素,为什么呢?
您在内循环中返回。 这将立即退出包含方法。
i
为3
( a.set
的第一个元素–现在假设该顺序)。
k
为3
(与上述相同) k
为4
–因此满足内部循环中的if
条件,并且该方法返回true
。 如您所见,从方法返回之前,您没有机会遍历a.set
所有值。
使用“返回”指示的“中断”,它仅中断一个级别
这是因为您要通过在第一次迭代中返回一个值来退出foreach-loop
。
根据您提供的代码和数据,内部循环将退出函数,并在第二次迭代时返回true。 您的代码中没有办法让外部foreach重复一次以上。
如果要编写返回true的代码,则在任何时候set a
的数字都小于set b
,则应这样做:
foreach (int i in a.set)
{
foreach (int k in b.set)
{
if (i < k)
{
return true;
}
}
}
return false;
也许您想使用break而不是return-当您返回(这将在3> 4时在内部循环的第二次迭代中发生)时,它将停止循环的执行并从您拥有的函数/方法中返回
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.