? :
là conditional operator. (Nó không chỉ là phần :
- toàn bộ đối số phương pháp là một cách sử dụng toán tử có điều kiện trong ví dụ của bạn.)
Nó thường được gọi là toán tử bậc ba, nhưng đó chỉ là một khía cạnh của bản chất - thay vì tên của nó. Nếu một toán tử bậc ba khác được đưa vào Java, thuật ngữ này sẽ trở nên mơ hồ. Nó được gọi là toán tử điều kiện vì nó có điều kiện (toán hạng đầu tiên), sau đó xác định toán tử nào trong hai toán hạng kia được đánh giá.
Các toán hạng đầu tiên được đánh giá, và sau đó hoặc thứ hai hoặc các toán hạng thứ ba được đánh giá dựa trên việc các toán hạng đầu tiên là đúng hay sai ...và kết quả là kết quả của toán tử.
Vì vậy, một cái gì đó như thế này:
int x = condition() ? result1() : result2();
là tương đương với:
int x;
if (condition()) {
x = result1();
} else {
x = result2();
}
Điều quan trọng là nó không đánh giá các toán hạng khác. Ví dụ: điều này là tốt:
String text = getSomeStringReferenceWhichMightBeNull();
int usefulCharacters = text == null ? 0 : text.length();
Nguồn
2013-07-04 12:45:07
Nó thường được gọi là "toán tử/vận hành bậc ba", ternary = 3. Đây là biểu thức if-then-else và có thể bị xâu chuỗi: 'x> 0,01? "tích cực": x <-0,01? "negative": "zero" '. Nhập: 'boolean? A: B' với kết quả chung của lớp A và B. Loại 'conditon'? null: "" 'là Chuỗi. –