ตัวดำเนินการ การเปรียบเทียบ และเงื่อนไข
หน้านี้อธิบายสัญลักษณ์และคำที่ใช้คำนวณร่วมกัน ได้แก่ เลขคณิต ลำดับการคำนวณ การเปรียบเทียบที่ตอบ true หรือ false และตัวดำเนินการเชิงตรรกะกับระดับบิต ใช้เมื่อบรรทัดให้ตัวเลขไม่ตรงที่คาด หรือเมื่อต้องการให้โน้ตตรวจเงื่อนไข เช่น ยังอยู่ในงบประมาณหรือไม่
เลขคณิต
| ตัวดำเนินการ | การสะกดคํา | ตัวอย่าง | ผลลัพธ์ |
|---|---|---|---|
| บวก | +, plus |
£12.50 + £4.30 |
£16.80 |
| ลบ | -, −, minus |
£20 - £4.50 |
£15.50 |
| คูณ | *, ×, times, multiplied by, การเขียนติดกัน |
3 × £4.50, 2(3 + 4) |
£13.50, 14 |
| หาร | /, ÷, divided by |
£60 / 4 |
£15.00 |
| การยกกำลัง | ^, **, to the power of, raised to, exponent |
2 ** 3, 2 raised to 10 |
8, 1,024 |
| เศษจากการหาร | mod, % (ระหว่างสองตัวเลข) |
50 mod 6, 50 % 6 |
2 |
| รากกําลังสอง | √, sqrt(...), square root of |
√144 |
12 |
| ยกกำลังสอง / ยกกำลังสาม | ², ³ |
3³ |
27 |
| แฟกทอเรียล | !, factorial(...) |
5!, factorial(5) |
120 |
เลขคณิตทํางานกับตัวเลขธรรมดา เงิน และปริมาณที่มีหน่วย และคําตอบจะเก็บสกุลเงินหรือหน่วยไว้:
£12.50 + £4.30 ได้ผลลัพธ์เป็น £16.803 * £4.50 ได้ผลลัพธ์เป็น £13.50£1,000 * 1.05^3 ได้ผลลัพธ์เป็น £1,157.636 times 7 ได้ผลลัพธ์เป็น 42100 minus 37.5 ได้ผลลัพธ์เป็น 62.5การเขียนติดกันหมายถึงการละ * เช่น 2(3 + 4) หรือ 2π ดูกรณีที่ใช้ได้และใช้ไม่ได้ในการคูณโดยปริยาย
ลำดับการคำนวณ
การคํานวณเป็นไปตามลําดับปกติจากคณิตศาสตร์ของโรงเรียน:
- วงเล็บ
- แฟกทอเรียล เช่น
5! - เลขยกกำลัง คำนวณจากขวาไปซ้าย:
2^3^2คือ2^9ซึ่งเท่ากับ 512 - เครื่องหมายลบหน้าจำนวน ใช้หลังยกกำลัง:
-2^2เท่ากับ -4 ส่วน(-2)^2เท่ากับ 4 - การคูณ การหาร และ
modจากซ้ายไปขวา - การบวกและลบจากซ้ายไปขวา
การละ * ไม่เปลี่ยนลำดับนี้ ดังนั้น 2x^2 จะยกกำลังสอง x ก่อนคูณสองตามสูตรในตำรา
จึงต้องคูณก่อนบวก แม้จะเขียนอยู่ติดกัน ซึ่งเป็นจุดที่อาจพลาดได้เมื่อรวมยอดบิล:
£85 - £12.50 * 2 ได้ผลลัพธ์เป็น £60.00(£85 - £12.50) * 2 ได้ผลลัพธ์เป็น £145.00£120 / 4 / 2 ได้ผลลัพธ์เป็น £15.00หากไม่แน่ใจ ให้ใส่วงเล็บเพื่อระบุลำดับให้ชัดเจน และช่วยให้อ่านโน้ตภายหลังได้ง่ายขึ้น
เครื่องหมายรากกําลังสองใช้กับค่าตรงหลังจากนั้น ดังนั้น √9 + 16 คือ 19 ใส่นิพจน์ทั้งหมดในวงเล็บเพื่อรับรากของผลรวม:
√(9 + 16) ได้ผลลัพธ์เป็น 5เศษจากการหาร
mod ให้สิ่งที่เหลือหลังจากหาร มันมีประโยชน์สําหรับการแบ่งสิ่งต่าง ๆ เป็นกลุ่ม:
eggs = 50eggs mod 6 ได้ผลลัพธ์เป็น 2floor(eggs / 6) ได้ผลลัพธ์เป็น 8ไข่ห้าสิบฟองใส่กล่องละหกฟองได้แปดกล่อง เหลืออีกสองฟอง
% ระหว่างสองตัวเลขหมายถึงเศษจากการหารเช่นกัน แม้ไม่เว้นช่องว่างหน้าเลขที่สอง: 50 % 6 และ 50% 6 ต่างให้ 2 ส่วน % ที่ไม่มีอะไรตามหลังเป็นเปอร์เซ็นต์ (50%) ดูเปอร์เซ็นต์
แฟกทอเรียล
ใส่ ! ติดหลังตัวเลข ชื่อตัวแปร หรือวงเล็บปิด เพื่อหาแฟกทอเรียล:
5! ได้ผลลัพธ์เป็น 120runners = 4runners! ได้ผลลัพธ์เป็น 243! + 2 ได้ผลลัพธ์เป็น 85!=4 ได้ผลลัพธ์เป็น trueฟังก์ชันแฟกทอเรียลคำนวณก่อนกำลังที่อยู่ถัดไป ดังนั้น 2^3! เท่ากับ 2⁶ ซึ่งเท่ากับ 64 ! ตามด้วย = ยังคงแสดงว่า "ไม่เท่ากัน" ตามที่แสดงในบรรทัดสุดท้าย factorial(5) ให้คำตอบเดียวกันกับ 5!.
การเปรียบเทียบ
==, !=, <, <=, > และ >= เปรียบเทียบค่าสองค่าและตอบกลับด้วย true หรือ false พวกมันทำงานกับตัวเลขธรรมดา โดยมีจำนวนในสกุลเงินเดียวกัน และกับปริมาณที่วัดสิ่งเดียวกัน แม้ในหน่วยที่แตกต่างกัน:
budget = £400spent = £365spent <= budget ได้ผลลัพธ์เป็น truespent == budget ได้ผลลัพธ์เป็น falsespent != budget ได้ผลลัพธ์เป็น true5 km == 5,000 m ได้ผลลัพธ์เป็น true90 min >= 1.5 hours ได้ผลลัพธ์เป็น true2 kg < 2,500 g ได้ผลลัพธ์เป็น trueหน่วยจะถูกแปลงก่อนเปรียบเทียบ ดังนั้น 1 mile > 1.5 km จึง true การเปรียบเทียบสิ่งต่าง ๆ ที่วัดปริมาณที่แตกต่างกัน เช่น กิโลกรัมและเมตร ทําให้เกิดข้อผิดพลาดของ incompatible units
สิ่งที่การเปรียบเทียบไม่รองรับ
- การเปรียบเทียบต่อกัน ไม่รองรับ
5 < x < 10ให้เชื่อมการเปรียบเทียบสองข้อแทน:5 < x && x < 10 - สัญลักษณ์ Unicode
≠,≤และ≥ไม่ได้รับการยอมรับ ใช้!=,<=และ>= - วันที่ เปรียบเทียบวันที่สองค่าด้วย
<หรือ>ไม่ได้ ให้ลบวันที่แล้วเปรียบเทียบผลต่างกับระยะเวลาแทน:
deadline = 30 September 2026booked = 14 September 2026deadline - booked ได้ผลลัพธ์เป็น 2 weeks 2 daysdeadline - booked >= 7 days ได้ผลลัพธ์เป็น trueตัวดําเนินการเชิงตรรกะ
เชื่อมเงื่อนไขเปรียบเทียบด้วย && (ต้องจริงทั้งสองข้อ) หรือ || (ต้องจริงอย่างน้อยหนึ่งข้อ) ใช้คำว่า and และ or ระหว่างเงื่อนไขเปรียบเทียบสองข้อได้ในความหมายเดียวกัน
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min ได้ผลลัพธ์เป็น truedistance >= 10 km || run time < 25 min ได้ผลลัพธ์เป็น falsedistance >= 10 km or run time < 30 min ได้ผลลัพธ์เป็น truetrue และ false สามารถเขียนได้โดยตรงและรวมกับ && และ ||:
true || false ได้ผลลัพธ์เป็น truetrue && false ได้ผลลัพธ์เป็น falseรูปแบบบางอย่างที่คุณอาจคาดว่าใช้ได้ยังไม่รองรับ:
andและorใช้ได้เฉพาะระหว่างเงื่อนไขเปรียบเทียบtrue and falseจึงใช้ไม่ได้ ให้เขียนtrue && false- ไม่มีตัวดำเนินการปฏิเสธ:
not trueและ!trueไม่ทำงาน ลองเปรียบเทียบกับfalseแทน เช่น ใน(spent > budget) == false orไม่ได้กำหนดค่าสำรองเมื่อเกิดข้อผิดพลาด:1/0 or 5จะไม่ให้คำตอบ 5
การใช้การเปรียบเทียบในเงื่อนไข
การเปรียบเทียบมีประโยชน์ที่สุดภายใน if … then … else … ซึ่งจะเลือกค่าตามคำตอบ:
basket = £34.50if basket >= £40 then £0 else £3.99 ได้ผลลัพธ์เป็น £3.99ดูรูปแบบทั้งหมดในเงื่อนไข ทั้ง else if, if และ unless ที่วางท้ายข้อความ รวมถึงการกำหนดค่าภายในแต่ละแขนง
ตัวดำเนินการระดับบิต
จำนวนเต็มรองรับตัวดำเนินการระดับบิต & (and), | (or), xor, << (เลื่อนบิตซ้าย) และ >> (เลื่อนบิตขวา) ใช้คำตัวพิมพ์ใหญ่ AND, OR และ XOR ได้ด้วย เหมาะกับงานเขียนโปรแกรม เช่น ค่าสีและสิทธิ์เข้าถึงไฟล์
12 & 10 ได้ผลลัพธ์เป็น 812 | 10 ได้ผลลัพธ์เป็น 1412 xor 10 ได้ผลลัพธ์เป็น 612 AND 10 ได้ผลลัพธ์เป็น 81 << 10 ได้ผลลัพธ์เป็น 1,0241024 >> 3 ได้ผลลัพธ์เป็น 128คำตอบจะแสดงเป็นตัวเลขธรรมดา เพิ่ม to binary, in hex หรือ to octal เพื่อดูในฐานที่คุณกำลังทำงานอยู่:
0o644 | 0o111 to octal ได้ผลลัพธ์เป็น 0o755colour = 0xFF8800(colour >> 8) & 0xFF ได้ผลลัพธ์เป็น 136ระบบเลื่อนบิตก่อนคำนวณ &, | และ xor แต่การใส่วงเล็บจะช่วยให้อ่านบรรทัดอย่างตัวอย่างค่าสีได้ง่ายขึ้นมาก
ตัวอย่างการใช้ร่วมกัน
การตรวจสอบงบประมาณรายเดือนที่ใช้เลขคณิต การเปรียบเทียบ และตรรกะร่วมกัน:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 ได้ผลลัพธ์เป็น £260.00left over = take home - rent - bills - groceries ได้ผลลัพธ์เป็น £860.00rent / take home as % ได้ผลลัพธ์เป็น 43.75%left over > £500 ได้ผลลัพธ์เป็น trueleft over > £500 && rent <= take home * 45% ได้ผลลัพธ์เป็น truegroceries คูณก่อนบวก ส่วน left over ลบจากซ้ายไปขวา สองบรรทัดสุดท้ายใช้โน้ตตรวจเงื่อนไข คำตอบยังเป็น true เมื่อเงินเหลือมากกว่า £500 และค่าเช่าไม่เกิน 45% ของรายได้สุทธิ และจะเปลี่ยนเป็น false ทันทีที่เงื่อนไขใดเงื่อนไขหนึ่งไม่เป็นจริง