Java: bool + int
Oct 18 2020
มีวิธีทำให้ Java ทำงานร่วมกับการเพิ่มและการประเมินบูลีน / จำนวนเต็มหรือไม่? เฉพาะเจาะจงมากขึ้น C ++ มีคุณสมบัติที่เหมาะสมซึ่งจะทำให้คำสั่ง if สั้นลง
for (int i = 0; i < n; ++i)
cout << i;
เทียบเท่ากับ
while (n--)
cout << n;
หรือแทนที่จะเป็น:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
หนึ่งสามารถมี
for (int i = 0; i < n; ++i)
count += (x==y);
มีวิธีทำคล้ายกับใน Java หรือไม่?
คำตอบ
3 ArvindKumarAvinash Oct 18 2020 at 17:02
คุณสามารถใช้ตัวดำเนินการ ternary ใน Java เพื่อให้ได้ผลเช่นเดียวกัน
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);
}
}
เอาท์พุต:
0
1
Polygnome Oct 18 2020 at 17:06
รหัสมักจะอ่านมากกว่าเขียน ในขณะที่คุณสามารถใช้ตัวดำเนินการ ternary ได้ แต่ความหมายของสิ่งนี้จะลดลงจนเพิ่มขึ้นcountหากxเท่ากับyเท่านั้น ดังนั้นวิธีที่อ่านง่ายที่สุดในการเขียนสิ่งนี้คือใช้:
for (int i = 0; i < n; ++i)
if (x == y) count++;
การใช้กลอุบายเช่นเดียวกับcount += (x==y)ในภาษาอื่น ๆ ถือเป็นแนวทางปฏิบัติที่ไม่ดีอยู่แล้วเนื่องจากทำให้ตรรกะสับสน เพิ่มประสิทธิภาพสำหรับการอ่านไม่ใช่การเขียน