ข้ามไปยังเนื้อหา
คู่มือ Varlig
หน้าแรกของ Varlig

ตัวดำเนินการ การเปรียบเทียบ และเงื่อนไข

หน้านี้อธิบายสัญลักษณ์และคำที่ใช้คำนวณร่วมกัน ได้แก่ เลขคณิต ลำดับการคำนวณ การเปรียบเทียบที่ตอบ 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

เลขคณิตทํางานกับตัวเลขธรรมดา เงิน และปริมาณที่มีหน่วย และคําตอบจะเก็บสกุลเงินหรือหน่วยไว้:

calc
£12.50 + £4.30 ได้ผลลัพธ์เป็น £16.80
3 * £4.50 ได้ผลลัพธ์เป็น £13.50
£1,000 * 1.05^3 ได้ผลลัพธ์เป็น £1,157.63
6 times 7 ได้ผลลัพธ์เป็น 42
100 minus 37.5 ได้ผลลัพธ์เป็น 62.5

การเขียนติดกันหมายถึงการละ * เช่น 2(3 + 4) หรือ 2π ดูกรณีที่ใช้ได้และใช้ไม่ได้ในการคูณโดยปริยาย

ลำดับการคำนวณ

การคํานวณเป็นไปตามลําดับปกติจากคณิตศาสตร์ของโรงเรียน:

  1. วงเล็บ
  2. แฟกทอเรียล เช่น 5!
  3. เลขยกกำลัง คำนวณจากขวาไปซ้าย: 2^3^2 คือ 2^9 ซึ่งเท่ากับ 512
  4. เครื่องหมายลบหน้าจำนวน ใช้หลังยกกำลัง: -2^2 เท่ากับ -4 ส่วน (-2)^2 เท่ากับ 4
  5. การคูณ การหาร และ mod จากซ้ายไปขวา
  6. การบวกและลบจากซ้ายไปขวา

การละ * ไม่เปลี่ยนลำดับนี้ ดังนั้น 2x^2 จะยกกำลังสอง x ก่อนคูณสองตามสูตรในตำรา

จึงต้องคูณก่อนบวก แม้จะเขียนอยู่ติดกัน ซึ่งเป็นจุดที่อาจพลาดได้เมื่อรวมยอดบิล:

calc
£85 - £12.50 * 2 ได้ผลลัพธ์เป็น £60.00
(£85 - £12.50) * 2 ได้ผลลัพธ์เป็น £145.00
£120 / 4 / 2 ได้ผลลัพธ์เป็น £15.00

หากไม่แน่ใจ ให้ใส่วงเล็บเพื่อระบุลำดับให้ชัดเจน และช่วยให้อ่านโน้ตภายหลังได้ง่ายขึ้น

เครื่องหมายรากกําลังสองใช้กับค่าตรงหลังจากนั้น ดังนั้น √9 + 16 คือ 19 ใส่นิพจน์ทั้งหมดในวงเล็บเพื่อรับรากของผลรวม:

calc
√(9 + 16) ได้ผลลัพธ์เป็น 5

เศษจากการหาร

mod ให้สิ่งที่เหลือหลังจากหาร มันมีประโยชน์สําหรับการแบ่งสิ่งต่าง ๆ เป็นกลุ่ม:

calc
eggs = 50
eggs mod 6 ได้ผลลัพธ์เป็น 2
floor(eggs / 6) ได้ผลลัพธ์เป็น 8

ไข่ห้าสิบฟองใส่กล่องละหกฟองได้แปดกล่อง เหลืออีกสองฟอง

% ระหว่างสองตัวเลขหมายถึงเศษจากการหารเช่นกัน แม้ไม่เว้นช่องว่างหน้าเลขที่สอง: 50 % 6 และ 50% 6 ต่างให้ 2 ส่วน % ที่ไม่มีอะไรตามหลังเป็นเปอร์เซ็นต์ (50%) ดูเปอร์เซ็นต์

แฟกทอเรียล

ใส่ ! ติดหลังตัวเลข ชื่อตัวแปร หรือวงเล็บปิด เพื่อหาแฟกทอเรียล:

calc
5! ได้ผลลัพธ์เป็น 120
runners = 4
runners! ได้ผลลัพธ์เป็น 24
3! + 2 ได้ผลลัพธ์เป็น 8
5!=4 ได้ผลลัพธ์เป็น true

ฟังก์ชันแฟกทอเรียลคำนวณก่อนกำลังที่อยู่ถัดไป ดังนั้น 2^3! เท่ากับ 2⁶ ซึ่งเท่ากับ 64 ! ตามด้วย = ยังคงแสดงว่า "ไม่เท่ากัน" ตามที่แสดงในบรรทัดสุดท้าย factorial(5) ให้คำตอบเดียวกันกับ 5!.

การเปรียบเทียบ

==, !=, <, <=, > และ >= เปรียบเทียบค่าสองค่าและตอบกลับด้วย true หรือ false พวกมันทำงานกับตัวเลขธรรมดา โดยมีจำนวนในสกุลเงินเดียวกัน และกับปริมาณที่วัดสิ่งเดียวกัน แม้ในหน่วยที่แตกต่างกัน:

calc
budget = £400
spent = £365
spent <= budget ได้ผลลัพธ์เป็น true
spent == budget ได้ผลลัพธ์เป็น false
spent != budget ได้ผลลัพธ์เป็น true
5 km == 5,000 m ได้ผลลัพธ์เป็น true
90 min >= 1.5 hours ได้ผลลัพธ์เป็น true
2 kg < 2,500 g ได้ผลลัพธ์เป็น true

หน่วยจะถูกแปลงก่อนเปรียบเทียบ ดังนั้น 1 mile > 1.5 km จึง true การเปรียบเทียบสิ่งต่าง ๆ ที่วัดปริมาณที่แตกต่างกัน เช่น กิโลกรัมและเมตร ทําให้เกิดข้อผิดพลาดของ incompatible units

สิ่งที่การเปรียบเทียบไม่รองรับ

  • การเปรียบเทียบต่อกัน ไม่รองรับ 5 < x < 10 ให้เชื่อมการเปรียบเทียบสองข้อแทน: 5 < x && x < 10
  • สัญลักษณ์ Unicode ≠, ≤ และ ≥ ไม่ได้รับการยอมรับ ใช้ !=, <= และ >=
  • วันที่ เปรียบเทียบวันที่สองค่าด้วย < หรือ > ไม่ได้ ให้ลบวันที่แล้วเปรียบเทียบผลต่างกับระยะเวลาแทน:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked ได้ผลลัพธ์เป็น 2 weeks 2 days
deadline - booked >= 7 days ได้ผลลัพธ์เป็น true

ตัวดําเนินการเชิงตรรกะ

เชื่อมเงื่อนไขเปรียบเทียบด้วย && (ต้องจริงทั้งสองข้อ) หรือ || (ต้องจริงอย่างน้อยหนึ่งข้อ) ใช้คำว่า and และ or ระหว่างเงื่อนไขเปรียบเทียบสองข้อได้ในความหมายเดียวกัน

calc
distance = 5 km
run time = 27 min
distance >= 5 km && run time < 30 min ได้ผลลัพธ์เป็น true
distance >= 10 km || run time < 25 min ได้ผลลัพธ์เป็น false
distance >= 10 km or run time < 30 min ได้ผลลัพธ์เป็น true

true และ false สามารถเขียนได้โดยตรงและรวมกับ && และ ||:

calc
true || false ได้ผลลัพธ์เป็น true
true && 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 … ซึ่งจะเลือกค่าตามคำตอบ:

calc
basket = £34.50
if basket >= £40 then £0 else £3.99 ได้ผลลัพธ์เป็น £3.99

ดูรูปแบบทั้งหมดในเงื่อนไข ทั้ง else if, if และ unless ที่วางท้ายข้อความ รวมถึงการกำหนดค่าภายในแต่ละแขนง

ตัวดำเนินการระดับบิต

จำนวนเต็มรองรับตัวดำเนินการระดับบิต & (and), | (or), xor, << (เลื่อนบิตซ้าย) และ >> (เลื่อนบิตขวา) ใช้คำตัวพิมพ์ใหญ่ AND, OR และ XOR ได้ด้วย เหมาะกับงานเขียนโปรแกรม เช่น ค่าสีและสิทธิ์เข้าถึงไฟล์

calc
12 & 10 ได้ผลลัพธ์เป็น 8
12 | 10 ได้ผลลัพธ์เป็น 14
12 xor 10 ได้ผลลัพธ์เป็น 6
12 AND 10 ได้ผลลัพธ์เป็น 8
1 << 10 ได้ผลลัพธ์เป็น 1,024
1024 >> 3 ได้ผลลัพธ์เป็น 128

คำตอบจะแสดงเป็นตัวเลขธรรมดา เพิ่ม to binary, in hex หรือ to octal เพื่อดูในฐานที่คุณกำลังทำงานอยู่:

calc
0o644 | 0o111 to octal ได้ผลลัพธ์เป็น 0o755
colour = 0xFF8800
(colour >> 8) & 0xFF ได้ผลลัพธ์เป็น 136

ระบบเลื่อนบิตก่อนคำนวณ &, | และ xor แต่การใส่วงเล็บจะช่วยให้อ่านบรรทัดอย่างตัวอย่างค่าสีได้ง่ายขึ้นมาก

ตัวอย่างการใช้ร่วมกัน

การตรวจสอบงบประมาณรายเดือนที่ใช้เลขคณิต การเปรียบเทียบ และตรรกะร่วมกัน:

calc
# September budget
take home = £2,400
rent = £1,050
bills = £230
groceries = 4 * £65 ได้ผลลัพธ์เป็น £260.00
left over = take home - rent - bills - groceries ได้ผลลัพธ์เป็น £860.00
rent / take home as % ได้ผลลัพธ์เป็น 43.75%
left over > £500 ได้ผลลัพธ์เป็น true
left over > £500 && rent <= take home * 45% ได้ผลลัพธ์เป็น true

groceries คูณก่อนบวก ส่วน left over ลบจากซ้ายไปขวา สองบรรทัดสุดท้ายใช้โน้ตตรวจเงื่อนไข คำตอบยังเป็น true เมื่อเงินเหลือมากกว่า £500 และค่าเช่าไม่เกิน 45% ของรายได้สุทธิ และจะเปลี่ยนเป็น false ทันทีที่เงื่อนไขใดเงื่อนไขหนึ่งไม่เป็นจริง