c++ - else 和 if 语句

标签 c++ if-statement runtime

世界!

我目前正在自学 C++。我正在阅读原理并练习使用 C++,在为其中一项练习编写程序时,我对程序的结果感到好奇,这是我没有预料到的。如果有人能解释为什么会这样,那就太好了

源代码如下:

#include<iostream>

using namespace std;

int main()
{
    double val1 = 0;
    double val2 = 0;

    cout << "Enter two floating point values: ";
    cin >> val1 >> val2;

    cout << val1 + val2 << '\n'
         << val1 * val2 << '\n'
         << val1 / val2 << '\n';

    if(val1 > val2)
    {
        cout << val1 << " greater \n";
        cout << val2 << " lesser \n";
    }

    if(val1 == val2)
    {
        cout << val1 << " equals other floating point value \n";
        cout << val2 << "equals other floating point value \n";
    }

    else
    {
        cout << val2 << " greater \n";
        cout << val1 << " lesser \n";
    }

    system("PAUSE");
}

当我输入类似 6.9 和 5.4 的内容时,它会给我以下输出:

6.9 更大 5.3少

5.3 更大 6.9以下

我已经通过将 else 语句更改为 if 语句解决了这个问题,但是有人可以告诉我为什么当我使用 else 语句时它会给出这个输出。谢谢!

最佳答案

您的代码应如下所示:

if(val1 > val2)
{
    cout << val1 << " greater \n";
    cout << val2 << " lesser \n";
}

else if(val1 == val2)
{ //^^you missed this else

    cout << val1 << " equals other floating point value \n";
    cout << val2 << "equals other floating point value \n";
}

else
{
    cout << val2 << " greater \n";
    cout << val1 << " lesser \n";
}

如果您错过了 else,逻辑非常清晰。具体来说,它将执行第一个 if block 。如果您没有 else,则转到 else block 。

关于c++ - else 和 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974760/

相关文章:

c++ - RSS 提要阅读器。 QT。烦恼

c++ - 以对象为参数的函数,作为另一个函数的参数

python - 使用默认回退选项过滤列表值

java - scala.runtime 中这些 Java 文件的用途是什么?

java - 如何杀死Java进程的子进程?

c++ - 从 QListWidget 和 QTableWidget 获取被点击的项目

c++ - 使用 INotify 监视具有多个符号链接(symbolic link)的文件

javascript - Jquery - if 语句匹配各种条件

javascript - 为什么这个 IF 语句仍然会触发?

Qt:查找内存泄漏和错误