Java: bool + int
Có cách nào để làm cho Java hoạt động với phép cộng và đánh giá boolean / số nguyên không? Cụ thể hơn, C ++ có một tính năng thích hợp giúp rút ngắn nhiều câu lệnh if.
for (int i = 0; i < n; ++i)
cout << i;
Tương đương với
while (n--)
cout << n;
Hoặc, thay vì:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Người ta có thể có
for (int i = 0; i < n; ++i)
count += (x==y);
Có cách nào để làm điều gì đó tương tự như trong Java không?
Trả lời
Bạn có thể sử dụng toán tử bậc ba trong Java cho hiệu quả tương tự.
public class Main {
public static void main(String[] args) {
int x = 5, y = 10, count = 0;
count += x == y ? 1 : 0;
System.out.println(count);
x = 10;
count += x == y ? 1 : 0;
System.out.println(count);
}
}
Đầu ra:
0
1
Mã thường được đọc nhiều hơn được viết. Trong khi bạn có thể sử dụng toán tử bậc ba, ngữ nghĩa của toán tử này chỉ tăng lên countnếu xbằngy . Vì vậy, cách dễ đọc nhất để viết điều này là sử dụng:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Thực hiện các thủ thuật như count += (x==y)trong các ngôn ngữ khác là một cách thực hành không tốt vì nó làm xáo trộn logic. Tối ưu hóa cho việc đọc, không phải viết.