【问题标题】:Return value of a function with a loop?带循环的函数的返回值?
【发布时间】:2018-11-23 18:30:18
【问题描述】:

我有以下代码,但是我对几件事感到困惑: 为什么循环内的总和返回?为什么不是外面的那个?

或者程序返回是否会返回遇到的值而忽略其余部分?

#include <iostream>
using namespace std;

int m(int n)
{
  int sum = 0;
  for(int i =1;i<=2;i++)
  {
    sum= sum + 10;
    return sum+3333; //returns inside loop
  }
  return sum-10;
}

int main()
{
  int n = 1;
  cout << m(n) << endl;
  return 0;
}

【问题讨论】:

  • 返回退出函数
  • 遇到return关键字时,函数返回调用代码(在本例中为main)。
  • 那么在这种情况下是否与break相似?它会忽略循环并返回到 main?
  • 是的。请注意,这也意味着循环只会执行一次。 for 循环是美化的 if (1 &lt;= 2),这始终是正确的。如果编译器丢弃整个函数并为cout &lt;&lt; 3343 &lt;&lt; endl; 生成代码,请不要感到惊讶

标签: c++ function loops for-loop


【解决方案1】:

一旦编译器遇到return,它就会回到main;所以在这种情况下,一旦在循环中遇到它就会返回到 main

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2015-08-08
    • 2019-01-19
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多