【问题标题】:structure of true and false Boolean return values [closed]true 和 false 布尔返回值的结构
【发布时间】: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


【解决方案1】:

当发现非唯一编号时,return true 指令会立即停止执行该方法并返回一个 true 值,指示该列表确实“包含重复项”。

如果循环执行并且没有找到重复的数字,则返回false,表示列表没有“包含重复”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2017-09-16
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多