Zig Academy · บทเรียน

ค่าล้น: + เทียบกับ +% เทียบกับ +|

คณิตศาสตร์แบบดักจับ วนรอบ และอิ่มตัว

บทเรียน 2 จาก 413 ขั้นตอน

ค่าล้น: + เทียบกับ +% เทียบกับ +| เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวเลขมีขีดจำกัด

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

Zig ตรวจจับค่าล้น

โดยค่าเริ่มต้น ตัวดำเนินการ + ทั่วไปจะดักจับค่าล้น ในการสร้างแบบปลอดภัย หากเกินขีดจำกัด โปรแกรมจะหยุดทำงานแทนที่จะทำให้ค่าเสียหาย

var x: u8 = 255;
x = x + 1; // panics: overflow

เหตุใดการดักจับจึงช่วยได้

การหยุดทำงานอย่างชัดเจนย่อมดีกว่าคำตอบที่ผิดโดยไม่มีสัญญาณเตือน การดักจับเปลี่ยนบั๊กที่แอบซ่อนให้กลายเป็นความล้มเหลวที่เห็นได้ชัด ซึ่งคุณค้นหาและแก้ไขได้อย่างรวดเร็ว

การคำนวณแบบวนรอบด้วย +%

บางครั้งคุณต้องการให้ค่ากลับไปเริ่มต้นใหม่โดยตั้งใจ ตัวดำเนินการ +% จะทำให้ค่าเวียนรอบ ดังนั้น 255 + 1 ใน u8 จึงกลายเป็น 0

var x: u8 = 255;
x = x +% 1; // 0

เมื่อใดจึงควรใช้การวนรอบ

การวนรอบเหมาะอย่างยิ่งสำหรับตัวนับ แฮช และผลรวมตรวจสอบที่ตั้งใจให้ค่ากลับไปเริ่มต้นใหม่ คุณระบุการทำงานนี้ด้วยส่วนต่อท้าย % จึงไม่มีทางเกิดขึ้นโดยบังเอิญ

การคำนวณแบบอิ่มตัวด้วย +|

ตัวดำเนินการ +| จะตรึงค่าไว้ที่ขีดจำกัดแทนการวนรอบ u8 ที่มีค่า 255 จะยังคงเป็น 255 เหมาะสำหรับค่าที่ต้องไม่เกินเพดาน

var x: u8 = 255;
x = x +| 1; // 255

สามตัวเลือกกับการตัดสินใจหนึ่งครั้ง

ดังนั้น + จะดักจับ, +% จะวนรอบ และ +| จะอิ่มตัว คุณเลือกพฤติกรรมให้ตรงกับเจตนาได้ ทำให้การจัดการค่าล้นชัดเจนในโค้ดของคุณ

การลบก็มีสามรูปแบบเช่นเดียวกัน

ส่วนต่อท้ายเหล่านี้ไม่ได้ใช้เฉพาะกับการบวกเท่านั้น -, -% และ -| ให้การลบแบบดักจับ วนรอบ และอิ่มตัวในลักษณะเดียวกัน

var x: u8 = 0;
x = x -| 1; // 0

การคูณก็เช่นกัน

การคูณใช้รูปแบบเดียวกัน: *, *% และ *| กฎเดียวกันคือให้เลือกพฤติกรรมเมื่อเกิดค่าล้น ใช้ได้กับตัวดำเนินการทางคณิตศาสตร์ทั้งหมด

const big = a *% b; // wrap on overflow

การสร้างแบบเริ่มต้นยังคงปลอดภัย

ในโหมด Debug และ ReleaseSafe ตัวดำเนินการทั่วไปจะตรวจสอบค่าล้น คุณจะเลือกไม่ใช้การตรวจสอบก็ต่อเมื่อมีเหตุผลจริงที่จะวนรอบหรือทำให้อิ่มตัว

เจตนาอยู่ในโค้ด

เนื่องจากพฤติกรรมแต่ละแบบมีสัญลักษณ์ของตนเอง ผู้อ่านจึงเห็นเจตนาในการจัดการค่าล้นได้ทันที ไม่มีสิ่งใดถูกคาดเดา ตัวดำเนินการระบุไว้อย่างชัดเจน

ตรวจสอบอย่างรวดเร็ว

คุณต้องการให้ตัวนับ u8 วนจาก 255 กลับไปเป็น 0 ควรใช้ตัวดำเนินการใด

สรุป: เลือกวิธีจัดการค่าล้น

คณิตศาสตร์ทั่วไปจะดักจับ ส่วนต่อท้าย % จะวนรอบ และส่วนต่อท้าย | จะอิ่มตัว เลือกอย่างตั้งใจ แล้วค่าล้นจะไม่ใช่เรื่องน่าประหลาดใจที่ซ่อนอยู่ 🛡️

เริ่มต้นได้ฟรี

เรียนรู้ Zig ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “ค่าล้น: + เทียบกับ +% เทียบกับ +|” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ค่าล้น: + เทียบกับ +% เทียบกับ +|” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ค่าล้น: + เทียบกับ +% เทียบกับ +|”

คณิตศาสตร์แบบดักจับ วนรอบ และอิ่มตัว คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ค่าล้น: + เทียบกับ +% เทียบกับ +|” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม

ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวดำเนินการเลขคณิตและการเปรียบเทียบ
  2. ค่าล้น: + เทียบกับ +% เทียบกับ +|
  3. ตัวดำเนินการระดับบิต
  4. ตรรกะบูลีนและการหยุดประเมินลัดวงจร
← กลับไปที่ Zig Academy