01/10/2018, 12:11

Lỗi khi sử dụng phép tăng 1 giảm 1 trong C++

Mn cho e hỏi sao khi e nhập đoan code này thì chương trình chạy bt nhưng bị lỗi kết quả. cụ thể là ct in ra số nguyên tăng 1 là chính nó, còn số nguyên giảm 1 lại bị cộng thêm 1.TH này là sao vậy ạ?
std::cout << " so nguyen tang 1 la " << so_nguyen ++;
std::cout << " so nguyen giam 1 la " << so_nguyen --;

X viết 14:15 ngày 01/10/2018

Thì đúng vậy rồi bạn còn muốn sao nữa nhỉ? =))

std::cout << "\nso nguyen tang 1 la " << so_nguyen ++; // ví dụ so_nguyen = 7 thì lúc này vẫn bằng 7, thằng ở dòng dưới là 8
std::cout << "\nso nguyen giam 1 la " << so_nguyen --; // lúc này là 8 nên in ra 8. – là trừ cho thằng so_nguyen sau dòng này nếu có.

Nguyen Gia Huy viết 14:27 ngày 01/10/2018

bạn đọc lại tại cpp.dayhauhoc.com nhé
toán tử ++ đặc sau biến ví dụ x++; thì hết câu lệnh, nghĩa là sau dấu ; thì nó mới thực hiện.
toán tử ++ đặc trước biến ví dụ ++x; thì thực hiện “ngay và luôn”
bạn chạy lại đoạn code này:

std::cout << "\nso nguyen tang 1 (nhung chua tang) la " << so_nguyen ++;
std::cout << "\nso nguyen tang 1 (da tang) la " << so_nguyen ;
std::cout << "\nso nguyen giam 1 (nhung chua giam) la " << so_nguyen --;
std::cout << "\nso nguyen giam 1 (da giam) la " << so_nguyen;

đoạn code 2:

std::cout << "\nso nguyen tang 1 la " << ++so_nguyen;
std::cout << "\nso nguyen giam 1 la " << --so_nguyen;
Trần Quốc Khánh viết 14:12 ngày 01/10/2018

ok hỉu phương thức hoạt động của nó rồi. Do mình đặt ngược

Trần Quốc Khánh viết 14:15 ngày 01/10/2018

thanks bác :)). e hỉu rồi

Bài liên quan
0