Khi tôi làm điều này: count = ++ count; Tại sao tôi nhận được cảnh báo - Việc gán cho số biến không có hiệu lực? Điều này có nghĩa là số lượng được tăng lên và sau đó được gán cho chính nó hoặc cái gì khác? Có giống như chỉ số lượng ++ không? Điều gì xảy ra trong count = count ++; ? Tại sao tôi không nhận được cảnh báo về điều này?Việc gán cho biến không có hiệu lực?
Trả lời
count++
và ++count
đều viết tắt là count=count+1
. Bài tập được xây dựng trong, do đó, không có điểm để gán lại nó. Sự khác biệt giữa count++
(cũng biết như postfix) và ++count
(còn gọi là tiền tố ) là ++count
sẽ xảy ra trước phần còn lại của dòng, và count++
sẽ xảy ra sau khi phần còn lại của dòng.
Nếu bạn đã tháo count=count++
, bạn sẽ kết thúc với điều này:
count = count;
count = count+1;
Bây giờ bạn có thể thấy tại sao postfix sẽ không cung cấp cho bạn một cảnh báo: một cái gì đó thật sự đang được thay đổi ở cuối.
Nếu bạn tháo count=++count
, bạn sẽ kết thúc với điều này:
count = count+1;
count = count;
Như bạn có thể thấy, dòng thứ hai của mã là vô ích, và đó là lý do tại sao các trình biên dịch được cảnh báo bạn.
Breaking báo cáo kết quả lên cơ bản bạn đang viết:
++count;
count = count;
Như bạn thấy count = count không có gì, vì thế mà cảnh báo.
toán tử ++ là lối tắt cho count = count + 1
sau. Nếu chúng tôi vi phạm dòng của bạn count = ++count
, nó phản hồi lại count = count+1 = count
Để mở rộng một chút, hãy đếm + + là postfix. Nó diễn ra sau khi các hoạt động khác vì vậy nếu bạn đã làm một cái gì đó giống như
int a = 0, b = 0;
a = b++;
một sẽ là 0, b sẽ là 1. Tuy nhiên, ++ count là tiền tố nếu bạn đã làm
int a = 0, b = 0;
a = ++b;
sau đó a và b cả hai sẽ là 1. Nếu bạn chỉ làm
count++;
hoặc
++count;
thì không thành vấn đề, nhưng nếu bạn kết hợp nó với một thứ gì khác, nó sẽ
- 1. UITextField được gán choPlaceholder không có hiệu lực
- 2. Việc thêm số 1 vào bộ không có hiệu lực
- 3. Tại sao phép gán biến tĩnh thứ hai có hiệu lực không phải là lần đầu tiên?
- 4. PHP setlocale không có hiệu lực
- 5. UpdatePanel.Visible = true không có hiệu lực
- 6. Đặt NSFileCreationDate không có hiệu lực
- 7. GWT DataGrid setLoadingIndicator không có hiệu lực
- 8. Không thể nhận expand_aliases có hiệu lực
- 9. Wake + Khóa Wifi không có hiệu lực
- 10. NSStepper trong NSTableCellView không có hiệu lực
- 11. android ImageView setPadding không có hiệu lực
- 12. Đóng một ByteArrayOutputStream không có hiệu lực?
- 13. Có thể gán cho nhiều biến từ một mảng không?
- 14. Không thể gán cho struct biến
- 15. Gán blocktrans cho biến số
- 16. Việc tối ưu hóa ORDER BY có hiệu lực trong câu lệnh SELECT sau đây không?
- 17. Làm thế nào tôi có thể gán ký hiệu Euro hoặc Pound cho một biến?
- 18. xác minh xem bigAddressAware có hiệu lực không?
- 19. Có thể ngăn chặn việc gán lại các biến không quá tải trong D2 không?
- 20. selectors Jquery không làm việc cho gán yếu tố dom để biến
- 21. Tại sao việc gán cho các biến toàn cầu của tôi không hoạt động trong Python?
- 22. Gán tên cho mục nhập vectơ mà không gán tên vectơ cho một tên biến?
- 23. ASP.NET MVC - Model.OrderBy Ngày không có hiệu lực
- 24. Trả về một mảng mà không gán cho một biến
- 25. Vận tốC#parse nhưng gán cho biến
- 26. gán toán tử cho biến trong python?
- 27. Cắt xén chuỗi Java không có hiệu lực
- 28. lực trả về đối tượng được gán
- 29. Màu nền CSS không có hiệu lực trên DIV
- 30. toán hạng trái của dấu phẩy không có hiệu lực?
Tôi đã nói ngắn gọn, không giống với. – LastStar007
Phải - bạn trả lời ngắn gọn hơn khi tôi đưa ra nhận xét đó (đề cập đến giá trị được trả về bởi biểu thức). Bạn đã giải thích tuyệt vời ở đây +1 –
tại sao không thông qua cảnh báo cho dòng đầu tiên trong ví dụ count = count ++? bởi vì điều đó không làm gì cả. – Thomas