0Pricing
Java Academy · บทเรียน

ตัวดำเนินการสามส่วนกับ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ตัวดำเนินการสามส่วน
  2. การซ้อนตัวดำเนินการสามส่วน
  3. ตัวดำเนินการสามส่วนกับ if/else
  4. ข้อควรระวังด้านความอ่านง่าย
← กลับไปที่ Java Academy