ตัวดำเนินการสามส่วนกับ if/else
ควรใช้แต่ละแบบเมื่อใด
ตัวดำเนินการสามส่วนกับ if/else เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
เครื่องมือสองแบบ งานเดียวกัน
ทั้งตัวดำเนินการสามทางและโครงสร้าง if/else ช่วยให้คุณแยกการทำงานตามเงื่อนไขได้
ความแตกต่างสำคัญคือ ตัวดำเนินการสามทางเป็นนิพจน์ที่สร้างค่า ขณะที่โครงสร้าง if/else เป็นคำสั่งที่ดำเนินการต่าง ๆ
การเลือกใช้ให้เหมาะสมช่วยให้โค้ดชัดเจน
ตรรกะเดียวกัน สองวิธี
โครงสร้าง if/else นี้กำหนดป้ายกำกับตามอายุ
โค้ดทำงานได้ แต่ใช้ถึงห้าบรรทัดสำหรับการเลือกอย่างง่าย
int age = 16;
String status;
if (age >= 18) {
status = "adult";
} else {
status = "minor";
}รูปแบบตัวดำเนินการสามทาง
การกำหนดค่าแบบเดิมเมื่อเขียนเป็นตัวดำเนินการสามทางจะพอดีในบรรทัดเดียว
โค้ดประกาศและเริ่มต้นค่าตัวแปรในขั้นตอนเดียว โดยไม่ทำซ้ำ
int age = 16;
String status = age >= 18 ? "adult" : "minor";ตัวดำเนินการสามทางคืนค่า
เนื่องจากตัวดำเนินการสามทางเป็นนิพจน์ คุณจึงวางไว้ได้ทุกที่ที่ต้องการค่า เช่น การกำหนดค่า การคืนค่า และอาร์กิวเมนต์
ไม่สามารถใช้ if เป็นค่าได้ เพราะใช้ควบคุมลำดับการทำงานเท่านั้น
public class Main {
public static void main(String[] args) {
int n = 5;
System.out.println(n > 0 ? "positive" : "non-positive");
}
}โครงสร้าง if/else ทำได้มากกว่า
โครงสร้าง if/else สามารถดำเนินการหลายคำสั่งในแต่ละแขนงได้ เช่น บันทึกข้อมูล อัปเดตตัวแปรหลายตัว และเรียกใช้เมธอด
ตัวดำเนินการสามทางจำกัดอยู่ที่การสร้างค่าหนึ่งค่า จึงไม่สามารถเก็บบล็อกการทำงานหลายอย่างไว้ได้
int balance = -10;
if (balance < 0) {
System.out.println("Overdrawn!");
balance = 0;
} else {
System.out.println("OK");
}ให้ผลข้างเคียงอยู่ในโครงสร้าง if/else
หากแต่ละแขนงต้องดำเนินการบางอย่าง เช่น พิมพ์ บันทึก หรือโยนข้อผิดพลาด ให้ใช้โครงสร้าง if/else
ตัวดำเนินการสามทางมีไว้สำหรับการเลือกค่า ไม่ใช่การดำเนินการ การฝืนใส่ผลข้างเคียงไว้ในตัวดำเนินการสามทางจะทำให้อ่านได้ยาก
// Prefer if/else when branches act
boolean error = true;
if (error) {
System.out.println("Logging error");
}ใช้ตัวดำเนินการสามทางเพื่อกำหนดค่า
เมื่อทั้งสองแขนงเพียงกำหนดค่าให้ตัวแปรเดียวกัน ตัวดำเนินการสามทางจะช่วยลดความซ้ำซ้อน
โครงสร้าง if/else ต้องเขียนชื่อตัวแปรซ้ำสองครั้ง แต่ตัวดำเนินการสามทางเขียนชื่อเพียงครั้งเดียว
public class Main {
public static void main(String[] args) {
int hour = 14;
String shift = hour < 12 ? "morning" : "afternoon";
System.out.println(shift);
}
}กฎเรื่องชนิดแตกต่างกัน
ตัวดำเนินการสามทางกำหนดให้ทั้งสองแขนงมีชนิดที่เข้ากันได้ เพื่อให้นิพจน์มีชนิดเดียว
โครงสร้าง if/else ไม่มีกฎเช่นนี้ เพราะแต่ละแขนงเป็นอิสระและไม่ได้สร้างค่ารวมค่าเดียว
// ternary: branches must be compatible types
boolean ok = true;
String msg = ok ? "yes" : "no";ข้อแลกเปลี่ยนด้านความอ่านง่าย
สำหรับการเลือกสั้น ๆ เพียงครั้งเดียว ตัวดำเนินการสามทางจะกระชับกว่า
สำหรับเงื่อนไขซับซ้อนหรือมีหลายแขนง โครงสร้าง if/else if จะอ่านได้ดีกว่าตัวดำเนินการสามทางซ้อนกันที่ยาว
เลือกรูปแบบที่ผู้อ่านในอนาคตจะเข้าใจได้เร็วที่สุด
การใช้ทั้งสองแบบร่วมกัน
คุณสามารถใช้ทั้งสองแบบร่วมกันได้ โดยใช้โครงสร้าง if/else เพื่อควบคุมลำดับการทำงาน และใช้ตัวดำเนินการสามทางภายในแขนงเพื่อเลือกค่าอย่างง่าย
วิธีนี้ทำให้การดำเนินการและการเลือกค่าอยู่ในตำแหน่งที่เหมาะสมตามธรรมชาติ
public class Main {
public static void main(String[] args) {
int qty = 3;
if (qty > 0) {
String word = qty == 1 ? "item" : "items";
System.out.println(qty + " " + word);
}
}
}แนวทางโดยย่อ
เลือกใช้ตัวดำเนินการสามทางเมื่อคุณกำหนดค่าหรือคืนค่าหนึ่งจากสองค่าอย่างง่าย
เลือกใช้โครงสร้าง if/else เมื่อแขนงต่าง ๆ ดำเนินการคำสั่ง มีผลข้างเคียง หรือตรรกะครอบคลุมหลายเงื่อนไข
การตรวจสอบอย่างรวดเร็ว
เมื่อใดควรเลือกใช้โครงสร้าง if/else แทนตัวดำเนินการสามทาง
ทบทวน
ตัวดำเนินการสามทางคือนิพจน์ที่เลือกค่า ส่วนโครงสร้าง if/else คือคำสั่งที่ดำเนินการต่าง ๆ
ใช้ตัวดำเนินการสามทางสำหรับการกำหนดค่าและการคืนค่าแบบค่าเดียวที่กระชับ ใช้โครงสร้าง if/else สำหรับผลข้างเคียง หลายคำสั่ง หรือการแยกการทำงานที่ซับซ้อน
คุณสามารถใช้ทั้งสองแบบร่วมกันเพื่อให้ได้ผลลัพธ์ที่ชัดเจนที่สุด
คำถามที่พบบ่อย
บทเรียน “ตัวดำเนินการสามส่วนกับ if/else” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวดำเนินการสามส่วนกับ if/else” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวดำเนินการสามส่วนกับ if/else”
ควรใช้แต่ละแบบเมื่อใด คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวดำเนินการสามส่วนกับ if/else” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการสามส่วน
- การซ้อนตัวดำเนินการสามส่วน
- ตัวดำเนินการสามส่วนกับ if/else
- ข้อควรระวังด้านความอ่านง่าย