if ในฐานะคำสั่งและนิพจน์
แตกแขนงและคืนค่าได้ในรูปแบบเดียว
if ในฐานะคำสั่งและนิพจน์ เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
แตกแขนงด้วย if
ใช้ if เพื่อเลือกเส้นทาง Zig จะทำงานในบล็อกแรกเมื่อเงื่อนไขเป็นจริง และข้ามบล็อกนั้นเมื่อเงื่อนไขเป็นเท็จ เรียบง่ายและชัดเจน 🌿
if (score > 50) {
std.debug.print("Pass\n", .{});
}เงื่อนไขต้องเป็น bool
เงื่อนไขในวงเล็บต้องเป็นค่า bool จริง Zig ไม่ยอมรับจำนวนเต็มหรือตัวชี้ในตำแหน่งนี้ จึงไม่มีการเดาว่าค่าใดควรถือเป็นจริงหรือเท็จ
เพิ่ม else
จับคู่ if กับ else เพื่อจัดการกรณีที่เงื่อนไขเป็นเท็จ จะมีบล็อกใดบล็อกหนึ่งทำงานพอดี ไม่ใช่ทั้งสองบล็อกและไม่ใช่ไม่มีบล็อกใดทำงาน
if (ready) {
start();
} else {
wait();
}เชื่อมต่อด้วย else if
เรียงการทดสอบด้วย else if เพื่อเลือกหนึ่งแขนงจากหลายแขนง Zig จะตรวจสอบจากบนลงล่างและหยุดที่รายการแรกที่ตรงกัน
if (n < 0) {
sign = -1;
} else if (n > 0) {
sign = 1;
} else {
sign = 0;
}if เป็นนิพจน์
ใน Zig if สามารถสร้างค่าได้เช่นกัน ทั้งสองแขนงจะคืนค่าบางอย่าง และ if ทั้งหมดจะกลายเป็นผลลัพธ์นั้นซึ่งคุณสามารถนำไปกำหนดค่าได้
const max = if (a > b) a else b;ทั้งสองแขนงต้องมีชนิดตรงกัน
เมื่อ if ให้ค่า ทั้งสองแขนงต้องใช้ชนิดเดียวกัน คอมไพเลอร์จะปรับให้ทั้งสองสอดคล้องกัน เพื่อให้ผลลัพธ์มีชนิดเดียวที่คาดเดาได้
ไม่จำเป็นต้องใช้เทอร์นารี
Zig ไม่มีตัวดำเนินการเทอร์นารี รูปแบบนิพจน์ของ if ทำหน้าที่นี้ได้อย่างเรียบร้อย ทำให้มีวิธีเขียนการเลือกเพียงรูปแบบเดียว
แกะค่าจากออปชันนัล
if สามารถทดสอบและแกะค่าจากออปชันนัลได้ในขั้นตอนเดียว ชื่อที่จับไว้จะเก็บค่าภายในไว้เฉพาะเมื่อค่านั้นมีอยู่
if (maybe_user) |user| {
greet(user);
}จับข้อผิดพลาดด้วย if
if ยังสามารถแยกยูเนียนข้อผิดพลาดออกเป็นส่วน ๆ ได้ แขนง else สามารถจับค่าข้อผิดพลาดไว้ได้เมื่อนิพจน์ทำงานไม่สำเร็จ
if (parse(text)) |value| {
use(value);
} else |err| {
report(err);
}จำเป็นต้องมีวงเล็บปีกกา
Zig ต้องมีวงเล็บปีกกาครอบบอดีของ if เสมอ แม้จะมีเพียงบรรทัดเดียว วิธีนี้ช่วยกำจัดบั๊กจากคำสั่งที่กำกวมได้ทั้งกลุ่ม
คืนค่าก่อนเวลา
รูปแบบที่ใช้บ่อยคือการคืนค่าก่อนเวลาภายใน if จัดการกรณีพิเศษก่อน แล้วให้ส่วนที่เหลือของฟังก์ชันอ่านต่อจากบนลงล่างได้ตรงไปตรงมา
if (list.len == 0) return;ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้ max เก็บค่าที่มากกว่าระหว่าง a กับ b ภายในบรรทัดเดียว รูปแบบใดของ Zig ที่ใช้ได้
สรุป
คุณได้รู้จัก if ในฐานะทั้งคำสั่งและนิพจน์ ทั้งเงื่อนไขแบบ bool, else และ else if, แขนงที่คืนค่า และการจับค่าออปชันนัลหรือข้อผิดพลาด 🎯
เรียนรู้ Zig ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “if ในฐานะคำสั่งและนิพจน์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “if ในฐานะคำสั่งและนิพจน์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “if ในฐานะคำสั่งและนิพจน์”
แตกแขนงและคืนค่าได้ในรูปแบบเดียว คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “if ในฐานะคำสั่งและนิพจน์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- if ในฐานะคำสั่งและนิพจน์
- ลูป while และนิพจน์ continue
- ลูป for เหนือช่วงและรายการ
- break, continue และลูปที่มีป้ายกำกับ