Tôi có một chức năng với nhiều nếu nhân (NÀY KHÔNG PHẢI LÀ BỘ LUẬT THỰC TẾ)C#: Biểu
if(n == 1)
m = 1;
if(n == 2)
m = 2;
if(n == 3)
m = 3;
Thay vì rằng tôi muốn làm làm cho họ tất cả vào: biểu hiện:
(n == 1) ? m = 1;
Nhưng nó nói rằng họ sẽ có nó một ':'
tôi quen với: biểu hiện từ C++ mà bạn chỉ có thể viết:
0.123.(n == 1) ? m = 1 : 0;
Nhưng 0 không thực hiện ở đây. Đây là một câu hỏi vô lý và tôi thậm chí không thể tìm thấy câu trả lời trong google vì nó bỏ qua '?' Như một từ.
TRẢ LỜI: câu trả lời quá xấu trong nhận xét. Không có cách nào để "không làm gì" trong biểu thức này và tôi nên sử dụng if-else hoặc switch. cảm ơn.
Tại sao không phải 'm = n'? – Pubby
Vâng, thật khó để Google có dấu hỏi. Điều này được gọi là toán tử bậc ba. – DOK
Câu lệnh "if" * thực thi câu lệnh nếu đáp ứng điều kiện *. Một biểu thức có điều kiện * chọn một biểu thức để đánh giá nếu một điều kiện được đáp ứng *, và trong C# nó * phải làm điều gì đó với biểu thức đó *. (Không giống như trong C++, nơi biểu thức có thể được thực hiện cho các hiệu ứng phụ của nó.) Bạn đang trộn lẫn hai phong cách lại với nhau theo một cách kỳ lạ; đừng làm thế. Nó thường là không thể, và khi có thể, nó rất khó hiểu. Sử dụng công tắc hoặc nếu có; điều đó dễ đọc hơn nhiều. –