功能找到最大数量

时间:2016-08-03 11:16:32

标签: c++ function

我通过Sololearn学习C ++。下面是一个代码,可以找到两个数字中最大的一个。

#include <iostream>
using namespace std;

int max(int a, int b){

   if (a > b) {
       return a;
   }

   return b;
} 

int main() {

    cout << max(7, 4) << endl;
    return 0;
}

结果 - 7

但不应该返回b,因为函数中的返回b

5 个答案:

答案 0 :(得分:8)

在函数中只会执行一个return语句。一旦代码遇到第一个return,它就会立即离开函数,并且不再执行任何代码。

答案 1 :(得分:5)

CoryKramer的回答说明了一切。 尽管如此,为了避免你遇到的困惑,我宁愿:

#include <iostream>
using namespace std;

int max(int a, int b){

   if (a > b) {
       return a;
   }
   else {
       return b;
   }
} 

int main() {

    cout << max(7, 4) << endl;
    return 0;
}

或者你可以使用:

return a > b ? a : b;

后一行是所谓的“条件表达式”(或“条件运算符”)。如果之前的短语?是真的,它返回之间的部分?和:,否则它返回:。

之后的部分

详细解释here

答案 2 :(得分:2)

if (a > b)(7&gt; 4)==&gt; 条件变为真所以执行return a并且max函数仅从那里返回,它不能返回b,这就是为什么它不执行返回b。

答案 3 :(得分:2)

操作员返回

  

终止当前函数并将表达式的结果返回给调用者

http://en.cppreference.com/w/cpp/language/return

通过条件后

if (a>b)

已编辑 - &gt;感谢athul return将评估 a 并将其作为函数的结果。

如果a小于b - 你将不会遇到这种情况,你会点击

return b;

要理解它,您可以添加:

cout << max(2, 4) << endl;
cout << max(2, 1) << endl;

进入主要部分。

PS最好至少使用代码块,在LearnC ++中建议输入他们的示例

答案 4 :(得分:2)

您可以使用返回&gt; b? a:b 运营商。