【问题标题】:if statement and --variableif 语句和 --variable
【发布时间】:2018-04-30 20:19:22
【问题描述】:

我正在准备我的 C++ 考试,并且正在做一些过去的论文。然后我偶然发现了这个代码理解任务。我想知道,为什么这个 if 语句中的 value 没有变为 4?

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

【问题讨论】:

标签: c++ if-statement


【解决方案1】:
if (!found || --value == 0)

在逻辑或运算中,如果满足第一个条件,则不会评估第二个条件。这里!found 为TRUE,它不会执行--value,因此它的值为5。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2016-02-29
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2014-02-15
      • 2013-03-28
      相关资源
      最近更新 更多