5
ทำไม (a * b! = 0) เร็วกว่า (a! = 0 && b! = 0) ใน Java
ฉันกำลังเขียนโค้ดบางส่วนใน Java ที่ ณ จุดหนึ่งการไหลของโปรแกรมจะถูกกำหนดโดยตัวแปร int สองตัวคือ "a" และ "b" ไม่ใช่ศูนย์ (หมายเหตุ: a และ b ไม่เคยเป็นลบและ ไม่เคยอยู่ในช่วงล้นจำนวนเต็ม) ฉันสามารถประเมินด้วย if (a != 0 && b != 0) { /* Some code */ } หรืออีกวิธีหนึ่ง if (a*b != 0) { /* Some code */ } เนื่องจากฉันคาดหวังว่าโค้ดส่วนนั้นจะวิ่งนับล้านครั้งต่อการวิ่งฉันจึงสงสัยว่าอันไหนจะเร็วกว่า ฉันทำการทดลองโดยการเปรียบเทียบพวกมันกับอาเรย์ที่สร้างขึ้นแบบสุ่มขนาดใหญ่และฉันก็อยากรู้ว่าสเปร์ตี้ของอาเรย์ (เศษส่วนของข้อมูล = 0) จะส่งผลต่อผลลัพธ์อย่างไร: long …