if-else 语句仅按特定顺序工作,我不知道为什么

if-else statement only works in a specific order and I don't know why

本文关键字:工作 我不知道 为什么 定顺序 语句 if-else      更新时间:2023-10-16

我最近开始学习如何编程,我被分配的任务之一是用c ++编写一个算法,该算法会要求三个数字,然后挑选出最小的一个。我编写的代码片段如下。

if (a <= b) { a = d; }
else { b = d; }

这应该挑出前两个数字中最小的一个,然后将其"链接"到d,但是在得到错误的结果一段时间后,我意识到无论ab的值如何,它都会给d一个0的值。 事实证明,这只有在我用翻转的字符编写相同的东西时才有效,输入变量排在最后:

if (a <= b) { d = a; }
else { d = b; }

为什么?关于 c++ 的语法,我应该知道一些东西吗?

似乎是一个奇怪的具体规则...

编辑:在写这篇文章时,我不小心写了{a = d}而不是{d = a},它应该符合我现在的意图。

这是代码的其余部分(它可以工作,但只有在我之前所说的翻转字符之后(

#include <iostream>
using namespace std;
int main() {
int a,b,c,d,min;
cin >> a >> b >> c;
if (a<=b) {d = a;}
else {d = b;}
if (c<=d) {min = c;}
else {min = d;}
cout << min << endl;
}

在第一个代码片段中,您根本不会分配给 d。赋值 (=( 运算符将右值(右侧(分配给左值(左侧(。 这是非常标准的语法。

相关文章: