如果声明和 - 变量

时间:2018-04-30 10:21:08

标签: c++ if-statement

我正在为我的C ++考试而努力,而我正在做一些过去的论文。然后我对这段代码理解任务进行了标记。我想知道,为什么在这个if语句中没有值变为4?

int found = 0, value = 5;
if (!found || --value == 0) {
    cout << "danger";
}
cout << "value =" << value << endl;

2 个答案:

答案 0 :(得分:8)

if (!found || --value == 0)

在逻辑OR运算中,如果满足第一个条件,则不会评估第二个条件。此处!found为TRUE且不会执行--value,因此将其值保留为5.

答案 1 :(得分:0)

因为如果满足第一个条件,则甚至不考虑第二个条件  评估。为了满足您的期望,请交换条件。

int found = 0, value = 5;
if ( --value == 0 || !found) {
    cout << "danger";
}
cout << "value =" << value << endl;