Tại sao chúng ta không thể sử dụng từ khóa trả về bên trong các toán tử bậc ba trong C, như sau: tổng> 0? return 1: return 0;Các toán tử Ternary và Return in C
Trả lời
return
là một tuyên bố. Các câu lệnh không thể được sử dụng bên trong các biểu thức theo cách đó.
Vì thao tác bậc ba là biểu thức và bạn không thể sử dụng câu lệnh trong biểu thức.
Bạn có thể dễ dàng sử dụng toán tử bậc ba trong phần trả về.
return sum > 0 ? 1 : 0;
Hoặc như DrDipShit chỉ ra:
return sum > 0;
chỉ: số tiền hoàn trả> 0; mà làm việc ra như trở về 1 hoặc 0 anyway. –
@DrDipShit: rất đúng, trong trường hợp này cũng hoạt động tốt :) – Wolph
Vì return
là một tuyên bố, không phải là một biểu hiện. Bạn cũng không thể làm int a = return 1;
.
Xem cú pháp của một nhà điều hành ternary là
expr1 ? expr2: expr3;
nơi expr1
, expr2
, expr3
là những biểu hiện;
Nhà điều hành ?:
hoạt động như sau expr1
được đánh giá đầu tiên nếu nó là đúng expr2
được đánh giá khác expr3
được đánh giá.
do đó trong biểu thức, câu trả lời trả về không thể được sử dụng bằng ngôn ngữ C.
-1, không thực sự trả lời câu hỏi. SO cũng không được thiết kế để hướng lưu lượng truy cập đến trang web của bạn – Hasturkun
Chỉ cần nhìn vào cú pháp bạn nên biết rằng một câu lệnh không thể được sử dụng trong một biểu thức. Điều bạn muốn có thể đạt được bằng cách thực hiện: return sum > 0 ? 1 : 0;
- 1. Toán tử Ternary và NullPointerException bất ngờ
- 2. Các toán tử Ternary của PHP Elseif
- 3. toán tử ternary không hoạt động với các hàm lambda
- 4. ternary có điều kiện và toán tử gán ưu tiên
- 5. Cách viết toán tử ternary PHP
- 6. Làm rõ toán tử Ternary PHP
- 7. toán tử # + và # - in .sbclrc
- 8. Toán tử Ternary bên trong chuỗi PHP
- 9. Toán tử Ternary cho NumPy ndarray?
- 10. Toán tử ternary PHP không hoạt động như mong đợi
- 11. Cách triển khai toán tử Ternary trong DLR
- 12. Ví dụ về toán tử ternary JavaScript với hàm
- 13. Toán tử Ternary trong JavaScript với nhiều biểu thức?
- 14. Hãy nhớ Cú pháp của toán tử Ternary
- 15. Toán tử "IN" trong LINQ
- 16. IN và = toán tử trong ngôn ngữ truy vấn JPA
- 17. Làm thế nào để sử dụng toán tử ternary của C# với hai giá trị byte?
- 18. Ném và điều hành ternary trong C++
- 19. Cách sử dụng toán tử Delphi "in" trong C++ Builder
- 20. C# các lớp tĩnh và toán tử là
- 21. toán tử [] [] C++
- 22. Toán tử bậc ba + hàm tạo C++ 11 từ initializer_list
- 23. Toán tử kết hợp trong C#?
- 24. Các câu lệnh chuẩn bị MySQLi với toán tử IN
- 25. Toán tử bộ "in" của Python
- 26. C++: Toán tử quá tải =
- 27. toán tử C++ typeid
- 28. C++ toán tử == quá tải
- 29. Toán tử C++ lambda ==
- 30. In các số 0 đầu với toán tử đầu ra C++ (printf equivalent)?
Có gì sai với 'return sum> 0? 1: 0; '? –
Hoặc, đối với vấn đề đó, 'if (sum> 0) trả lại 1; else return 0; ' –
Cảm ơn tất cả các câu trả lời. Không có gì sai với return sum> 0? 1: 0; Tôi chỉ muốn biết tại sao chúng ta không thể sử dụng nó theo cách được đề cập ở trên trong câu hỏi. – nullpointerexception