c++ - If-else 语句中的返回值 - C++

标签 c++ if-statement return-value

下面的代码打印:

5

为什么打印 5?另外,如果它返回 5,为什么它不打印“James”?我不明白下面的代码。如果我删除 else 字,它会打印 -1。但是它不应该返回默认值吗?

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int fonk()
{
    int a = 5, b = 3;
    int c = a*b;
    if(c >10)
    {
        if( a<b && a >0)
        {   cout <<"James";
        return a;
        }

        else if(b<0)
        {
            return b;
        }

    }
    else return -1;

}

int main()
{
    int x = fonk();
    cout << x;
}

最佳答案

您遇到了未定义的行为。你的函数实际上没有 return任何事物!查看每个条件:

  • c>10 ?是的。
  • a<b && a >0 ?没有。
  • b<0 ?没有。

所以你永远不会击中任何 return秒。这意味着您的程序中绝对可能发生任何事情。在您的情况下,5 似乎恰好发生了。存储在程序需要 return 的位置值(value)。

关于c++ - If-else 语句中的返回值 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737099/

相关文章:

c++ - Direct2D C++ 用户输入

c++ - 尝试使用 while 循环将数据从文件读入数组。还必须检查以确保第一个也是唯一的值不是 -1

c++ - 在二维数组中添加一个元素

c# - 简写 If 语句 : C#

用于读取字符的 C 程序无法识别正确输入的字符串。

c++ - 使用数组和 rand 来计算 1-10 之间整数的实例数?

r - 如何根据多个条件选择/计算列中的行数

Java 如何正确返回 Int 值?

c - 如果函数有错误返回什么?

c++ - 当函数返回类型为 bool 时,为什么不能在 C++14 中返回共享指针?