Có thể thay vế trái của sum += i bằng biến khác được không?

Dạ em chào Anh/Chị, em mới học c++ có câu lệnh như này em không hiểu nhờ Anh/Chị giải thích hộ em với ạ:

int main(int argc, char** argv) {
	int n;
	int sum=0;
	cout<<"nhap n: ";
	cin>>n;
	for(int i=1;i<=n;i++){
		sum+=i;
		cout<<i<<"+";
	}
	
	cout<<"="<<sum;
	return 0;
}

—câu lệnh: sum+=i tương đương sum = sum + i như vậy mình thay thế sum bên trái dấu = thành 1 biến khác được không ạ?

Chưa hiểu ý tưởng của bạn =))

+= là viết gọn thì thay "bên trái dấu = " là thay cái gì :smiley:

cảm ơn bạn đã hỗ trợ mình, ý của tớ bên trái dấu = là biến sum ạ

cảm ơn bạn đã hỗ trợ giúp mình, ý tớ là: sum+ = i tương đương với câu sum = sum+i, thì ở đây biến sum bên trái dấu = mình có thay thế bằng 1 biến sum2, sum3,… được không hay phải là sum ấy ạ

+= là viết gọn nên hai bên phải là sum cả, chứ không thì đặt ra toán tử viết gọn hơn để làm gì :smiley:

1 Like

Nếu như vậy thì khai báo thêm 1 biến có tên: sum2 = 0, và sử dụng biến này là: sum2 = sum + i thì kết quả xuất ra lại sai ạ :frowning:

tại vì sum2 = sum + i không làm thay đổi sum mà chỉ thay đổi sum2
Bạn có gọi sum2 = sum + i cả tỉ lần thì sum vẫn chỉ bằng 0, kết quả luôn là sum2 == i

3 Likes

câu lệnh [tên biến] +=[giá trị] là cách viến gọn lại để đỡ fải tốn thêm một vùng nhớ.
Nhưng bạn cũng có thế viết theo kiểu tường minh : [tên biến mới] = [tên biến cũ] + [giá trị]
Với cách trên bạn có tất cả 3 vùng nhớ. Trong khi đó cách rút gọn chỉ tốn có 2 vùng nhớ mà thôi.
Và theo như bạn nói thì bạn ra kết quả sai là do bạn xuất ra màng hình SUM nhưng bạn lại lấy SUM2 mang di thay đổi giá trị.

Hoàn toàn không có thuận lợi gì về mặt tài nguyên khi bạn sử dụng a += b so với a = a + b. Vì 2 phép tính đó được chuyển thành cùng một mã hợp ngữ.

1 Like

Bạn H hiểu sai tui nói rồi à? Cái ý trên vủa tui là nếu bạn ấy dùng sum2 = sum + i thì nó sẽ tốn thêm một vùng nhớ kô fải sao. Nếu ta dùng sum = sum + i thì nó sẽ đc rút gọn lại sum +=i

Bạn xem lại cách hành văn của mình, tránh làm người mới hiểu sai lệch.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?