У меня есть трудно понять, что делает этот код делать:If-statemenet состояние
#include <iostream>
using namespace std;
int main()
{
int x = 0, y = 0;
if (x++ && y++)
y += 2;
cout << x + y << endl;
return 0;
}
Выход 1 на C++. Но я думаю, что это должно быть 2?
Почему? Потому что в выражении() if, я думаю, что нужно только проверить, истинно ли это/false, поэтому он не увеличивает/не уменьшает число целых чисел. И поскольку это верно по умолчанию, оно увеличивает y на 2? И выход должен быть 0 + 2 = 2, но он выводит только 1?
Вместо того, чтобы убедить себя, что ваши собственные убеждения являются единственным источником истины, вы можете просто открыть учебник на C++ и узнать, что такое операто rs и statments ** фактически ** сделать. –
ваше предположение не работает. – yngccc
x ++ приращения после оператора if. Когда значение if проверено, 'x' равно 0, поэтому false. Когда инструкция if продолжается, x увеличивается. y + = 2 НЕ обрабатывается. Это оставляет 'cout << 1 + 0 << endl' – jeremy