【发布时间】: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 <= 2),这始终是正确的。如果编译器丢弃整个函数并为cout << 3343 << endl;生成代码,请不要感到惊讶
标签: c++ function loops for-loop