Я только начинающий в C ++, и я сталкивался с этим экземпляром.
#include <iostream>
using namespace std;
int main(){
int c = 3;
int d = c++;
if (c++ == 4 && d == 3)
cout << "1: " << c << " " << d << endl;
if (++c == 5 && d-- == 3)
cout << "2: " << c-- << " " << d << endl;
cout << "3: " << c << " " << d << endl;
}
Таким образом, в этом случае вывод будет:
1: 5 3
3: 6 3
И что я понимаю отсюда следует, что переменные все равно будут обновляться, даже если они вызываются для приращения в операторе if.
Теперь я столкнулся с этим:
#include <iostream>
using namespace std:
int main(){
for (int i= 1; i <= 10; ++i){
cout << i ;
break
}
}
И хотя его приращение увеличивается, он возвращает только 1. Поэтому я подумал, что, возможно, во второй раз он проходит через l oop (после удаление разрыва конечно) он вернул бы 3, потому что тогда он бы прошел через ++ i дважды, но все равно 2. Я не понимаю. Поэтому мой вопрос заключается в том, почему в операторе if происходит мгновенное увеличение, но его нет, когда ++ i существует в for l oop?
EDIT: просто исправлена опечатка. Я должен был ввести точку с запятой, но вместо этого поставить запятую: b
РЕДАКТИРОВАТЬ: добавил более простой вопрос, поскольку некоторые задаются вопросом, что я спрашиваю.