【问题标题】:Does return inside an if() which is inside a for() - return from the if() or the for()?是否在 for() 内部的 if() 中返回 - 从 if() 或 for() 返回?
【发布时间】:2010-12-06 10:50:38
【问题描述】:

好的,我不确定我的返回行是结束 for() 循环还是只结束 if() 问题?

例子:

for(;;) {
  wait(1);
  if(something) {
    tokens = strTok(something, " ")
    if(tokens.size < 2)
      return;
   }
}

我猜它只会从 if(something) 问题中返回,但我只是想确定......

【问题讨论】:

  • 为什么不自己尝试一下,看看会发生什么?
  • 我假设您正在考虑休息,而不是返回。请参阅 sepp2k 的答案。
  • 除此之外,当问一个问题时,总是值得指定它是用于什么语言(这看起来像 C 或 C++,但它也可以是 Java 或 C# 或 JavaScript 或任何其他几十个大括号家庭语言)。为此使用标签。

标签: return


【解决方案1】:

这大概都在函数或方法内部; RETURN 将退出该函数/方法。

举一个更程序化设置的示例,在 PHP 文件中,不在函数中的 RETURN 将退出当前脚本文件。 (同样,它是否在其他块内也没关系。)

【讨论】:

    【解决方案2】:

    对于我所知道的所有语言,RETURN 是“停止做你正在做的事情并完全退出这个功能”。根据您的描述,您显然不想要 RETURN,您想要 BREAK 或 CONTINUE,具体取决于您使用的语言。

    【讨论】:

      【解决方案3】:

      在我知道的所有语言中(haskell 除外)return 将从封闭函数/方法返回,而 break 将从循环中“返回”。

      【讨论】:

      • 在 XQuery 和 XPath 2.0 中,return 是 FLWOR 关键字,它完全等同于 C# LINQ select - 即你在 C# 中写成 from x in xs select x,你会写成 for $x in $xs return $x在 XQuery 中。
      【解决方案4】:

      在类 C 语言中,return 退出整个函数。 break 将退出最内层循环(for do...whilewhile

      【讨论】:

        【解决方案5】:

        大多数语言的 return 将结束整个方法。

        【讨论】:

          【解决方案6】:

          这可能取决于特定的语言,但对于我能想到的所有语言,return 都将从当前函数返回。 FOR() 和 IF() 结构通常没有返回语句。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-12-14
            • 1970-01-01
            • 2021-06-15
            • 1970-01-01
            • 2019-07-31
            • 2014-05-28
            • 2016-09-14
            相关资源
            最近更新 更多