【发布时间】:2019-08-29 22:59:04
【问题描述】:
我遇到了一段代码(一个函数),它接受一个整数列表并将所有唯一数字放在一个单独的列表中。我知道如果接受的整数列表包含一个已经在使用所有唯一数字创建的新整数列表中的数字,则会返回真值。
我不明白return false语句的位置。让我困惑的是它是在foreach语句关闭之后放置的。这不会导致返回值是假的,无论它以前是否设置为真?
public static bool ContainsDuplicates(List<int> numbers)
{
var uniques = new List<int>();
foreach (var number in numbers)
{
if (!uniques.Contains(number))
uniques.Add(number);
else
return true;
}
return false;
}
【问题讨论】:
-
您的 free, awesome, built-in Step Debugger 将帮助您了解代码如何处理不同的数据集
-
如果您
return true则该函数立即存在,无需进一步执行代码。因此return false永远不会被执行 -
@Martin -
return true是if的一部分。如果条件不满足,return false是绝对可能的。 -
@John3136 再次阅读我的评论。我说如果你返回true,那么return false 永远不会被执行。感谢您的不必要和不正确的评论
-
@Martin "因此 return false 永远不会被执行" 这是一个非常清楚和不正确的结论。您的评论如何解决这个问题?
标签: c# return-value control-flow