我通过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
答案 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 运营商。