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

时间:2018-09-07 21:31:23

标签: c++ if-statement

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

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

这应该从前两个数字中选出最小的一个,然后将其“链接”到d,但是经过一段时间的错误结果后,我意识到无论{{1}的值如何}和a赋予b值为d。 事实证明,只有当我用翻转的字符写相同的东西并且输入变量排在最后时,这才起作用:

0

那是为什么?关于C ++的语法,我应该知道些什么吗?

似乎有一个奇怪的特定规则……

编辑:撰写本文时,我不小心写了{a = d}而不是{d = a},

这是其余的代码(它可以正常工作,但仅在我刚才说过的字符翻转之后)

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

1 个答案:

答案 0 :(得分:1)

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