Почему меняется моя логическая переменная (C ++)? - PullRequest
0 голосов
/ 21 марта 2019

Может кто-нибудь объяснить мне, что здесь происходит?

#include <iostream>
using namespace std;
int main() {
    bool x = false;
    if (x = true) { cout << "x is true" << endl; }
    if (x = false) { cout << "x is false" << endl; } 
    // for some reason always prints "x is true".
}

Я пытался выяснить, почему я не мог выполнить вызов по ссылке с логическим методом (да, я также тестировал после стирания метода), а затем я понял, что логическая переменнаяпо моему основной метод менялся сам по себе.Пожалуйста, помогите!

1 Ответ

6 голосов
/ 21 марта 2019

Ваши операторы if для сравнения должны иметь двойные равные ==.Вы присваиваете свою переменную с помощью =

Oh и x=true присваивает x, а само по себе также true.

...