【问题标题】:return in a for loop C在 for 循环中返回 C
【发布时间】:2017-10-13 05:38:12
【问题描述】:

在下面的代码中,会有什么返回吗?

#include <stdio.h>

int try_this (int in);

int main (void)
{
    try_this (5);
}

int try_this (int in)
{
    int i = 1;

    for (i = 0; i < in; i = i + 2) {
        return i;
    }

    return i;
}

既然 for 循环中有一个 return,那么代码会不会因为调用函数后什么都没有返回而什么都不返回?或者我会以数字形式返回,比如 1(因为 try_this 中的声明)或 6(因为循环)? 谢谢!!:)

【问题讨论】:

  • Umm...函数名为try_this。我认为你应该这样做。
  • 每次返回0
  • 一旦你到达你的第一个return,函数就会返回指定的值并且函数栈被销毁(释放回系统)。 ...并且您的编译器应该向您尖叫function main is type int,因此应该返回一个值(例如return try_this(5);)。始终在编译字符串中至少使用 -Wall -Wextra 进行编译,并且在编译时没有任何警告之前不要接受代码。
  • 它会返回0,但是你没有使用main中的返回值。
  • for 循环的初始条件将i 设置为0。第一次迭代,i 等于0,将命中return i。因此该函数将始终返回0。

标签: c function for-loop return


【解决方案1】:

当遇到第一个return 语句时,函数将返回。很容易看出该函数将启动循环,而i=0 将启动return i。所以每次你调用 try_this 你都会得到0

另外,return 0; 来自主...

【讨论】:

  • 您可以将上面段落中的内联代码包装在 反引号 中(例如'`')以格式化为代码。它有助于您的答案的可读性,并显示了一些额外的努力。
  • 没什么大不了的,我帮你修好了。在那些该死的移动键盘上格式化一定是个熊...
【解决方案2】:

第一次进入for循环时,i为0,小于5。然后在for循环中执行return i;语句,完成try_this()函数的执行。

【讨论】:

    【解决方案3】:

    您基本上要问的是,即使函数调用后没有代码,该函数是否会返回某些内容。

    答案是肯定的,它会回来的。以后有没有代码都没关系。函数会返回(在本例中为0)只是没有人可以捕捉到它。

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2015-02-24
      • 2016-08-23
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      相关资源
      最近更新 更多