Java คือ ตอนที่ 2 : โฟลว์การควบคุม (Control Flow)

  1. ทำความเข้าใจกับโฟลว์การควบคุม (Control Flow)
  2. คำสั่งเงื่อนไข (Conditional Statements)
    if-else
    switch-case
  3. โครงสร้างการวนซ้ำ (Looping Constructs)
    ลูป for
    ลูป while
    การวนซ้ำ do-while
  4. สาขาโฟลว์การควบคุม (Control Flow Branches)
    break
    continue

เมื่อเราพูดถึงการเรียนรู้พื้นฐานของภาษาการเขียนโปรแกรม เรามักจะปัดเศษความเข้าใจที่จำเป็นของข้อความควบคุมโฟลว์ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับภาษาที่หลากหลายและหลากหลายอย่าง Java ซึ่งเป็นแกนหลักสำหรับแอปพลิเคชันระดับองค์กร แอปบนอุปกรณ์เคลื่อนที่ บริการบนเว็บ และอื่นๆ อีกมากมาย การควบคุมโฟลว์ควบคุมใน Java เป็นทักษะที่สำคัญเมื่อมีเป้าหมายเพื่อการทำแอพที่แข็งแกร่ง ไดนามิก และมีประสิทธิภาพ

1. ทำความเข้าใจกับโฟลว์การควบคุม (Control Flow)

ในโปรแกรมใดๆ โฟลว์ควบคุมคือลำดับที่คอมพิวเตอร์ดำเนินการตามคำสั่ง ใน Java คำสั่งโฟลว์ควบคุมจะแบ่งขั้นตอนการดำเนินการโดยใช้การตัดสินใจ การวนลูป (looping) และการแตกกิ่ง (branching) ทำให้โปรแกรมของคุณสามารถเรียกใช้บล็อกโค้ดเฉพาะอย่างมีเงื่อนไขได้

โฟลว์ควบคุมของแอ็พพลิเคชัน Java ทั่วไปประกอบด้วยโครงสร้างหลักสามแบบ ได้แก่ ข้อความสั่งแบบมีเงื่อนไข ( if-else, switch-case) โครงสร้างแบบวนซ้ำ ( for, while, do-while) และกิ่งก้านควบคุม (control flow branche) ( break, continue) ด้วยการจัดการกับองค์ประกอบเหล่านี้ คุณสามารถทำแอพที่ซับซ้อนและแข็งแกร่งด้วยลักษณะการทำงานแบบไดนามิก

2. คำสั่งเงื่อนไข (Conditional Statements)

if-else

คำสั่ง if-else ใน Java เป็นตัวดำเนินการตัดสินใจหลัก เป็นโอเปอเรเตอร์แบบสองทิศทาง หมายความว่าจะตัดสินใจขั้นตอนการดำเนินการตามเงื่อนไขเฉพาะ นี่คือโครงสร้าง:

if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}

สมมติว่าเรากำลังทำแอพสำหรับห้องสมุดท้องถิ่นที่แนะนำหนังสือตามกลุ่มอายุ คำสั่ง if-else สามารถใช้เพื่อกำหนดประเภทของหนังสือที่จะแนะนำ:

int age = 16;

if (age < 12) {
    System.out.println("Recommend picture books");
} else if (age >= 12 && age < 16) {
    System.out.println("Recommend middle grade books");
} else {
    System.out.println("Recommend young adult books");
}

switch-case

แม้ว่าคำสั่ง if-else จะมีประโยชน์สำหรับการตัดสินใจแบบคำสั่งไบนารี switch-case นั้นเหมาะสมอย่างยิ่งเมื่อต้องรับมือกับหลายเงื่อนไข นิพจน์ switch ได้รับการประเมินหนึ่งครั้ง และค่าของนิพจน์จะถูกเปรียบเทียบกับค่าของแต่ละcaseค่า หากมีการจับคู่ บล็อกโค้ดที่เกี่ยวข้องจะถูกดำเนินการ

ต่อด้วยตัวอย่างแอปพลิเคชันห้องสมุด เราสามารถใช้ switch-case แนะนำประเภทหนังสือตามวันในสัปดาห์:

String day = "Monday";

switch (day) {
    case "Monday":
        System.out.println("Recommend Mystery books");
        break;
    case "Tuesday":
        System.out.println("Recommend Romance books");
        break;
    case "Wednesday":
        System.out.println("Recommend Fantasy books");
        break;
    default:
        System.out.println("Recommend any genre");
        break;
}

3. โครงสร้างการวนซ้ำ (Looping Constructs)

ใน Java มีลูปหลักสามประเภท: for, while, do-while และ การวนซ้ำมีประโยชน์เมื่อคุณต้องการบล็อกโค้ดที่จะดำเนินการซ้ำๆ

ลูป for

โดยทั่วไปแล้ว ลูforปจะใช้เมื่อเราทราบจำนวนครั้งที่เราต้องการวนซ้ำบล็อกของโค้ด สมมติว่าแอปพลิเคชันห้องสมุดจำเป็นต้องพิมพ์รายชื่อหนังสือ สามารถทำได้โดยใช้forลูปดังนี้:

String[] books = { "Harry Potter", "Lord of the Rings", "Moby Dick", "Great Expectations" };

for (int i = 0; i < books.length; i++) {
    System.out.println(books[i]);
}

ลูป while

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

int daysOverdue = 5;

while (daysOverdue > 0) {
    System.out.println("You have an overdue book. Please return it.");
    daysOverdue--;
}

การวนซ้ำ do-while

การวนซ้ำ do-while นั้นคล้ายกับการวนซ้ำ while แต่มีความแตกต่างที่สำคัญ: เงื่อนไขจะถูกตรวจสอบหลังจากการดำเนินการของบล็อกโค้ด สิ่งนี้รับประกันได้ว่าบล็อกจะถูกดำเนินการอย่างน้อยหนึ่งครั้ง ตัวอย่างเช่น แอปพลิเคชันของเราอาจขอให้ผู้ใช้ให้คะแนนหนังสือที่เพิ่งอ่านจบ คำขอสามารถสร้างแบบจำลองโดยใช้ลูป do-while:

int rating = 0;

do {
    System.out.println("Please rate the book you've just read (1-5 stars):");
    // A method to fetch user input would go here
    // For example, rating = userInput.getInt();
} while (rating < 1 || rating > 5);

4. สาขาโฟลว์การควบคุม (Control Flow Branches)

สาขาโฟลว์การควบคุมช่วยให้เราสามารถควบคุมโฟลว์การดำเนินการของโปรแกรมได้มากขึ้น Java ให้คำสั่งการแตกสาขาหลักสองรายการแก่เรา: break และ continue.

break

break สามารถใช้คำสั่งเพื่อ “กระโดดออก” ของลูป โดยไม่คำนึงถึงเงื่อนไขของลูป ตัวอย่างเช่น หากแอปพลิเคชันของเราวนซ้ำรายการหนังสือ และเราต้องการหยุดการวนซ้ำเมื่อเราพบชื่อเรื่องใดเรื่องหนึ่ง เราสามารถใช้คำสั่งbreak:

String[] books = { "Harry Potter", "Lord of the Rings", "Moby Dick", "Great Expectations" };
String bookToFind = "Moby Dick";

for (String book : books) {
    if (book.equals(bookToFind)) {
        System.out.println(bookToFind + " found.");
        break;
    }
}

ในกรณีนี้ เมื่อพบ “Moby Dick” การวนซ้ำจะสิ้นสุดลง

continue

ในขณะที่ break หยุดการวนซ้ำทั้งหมด continue ให้หยุดการวนซ้ำปัจจุบันและข้ามไปยังรอบถัดไป หากใบสมัครของเราจำเป็นต้องพิมพ์เฉพาะชื่อหนังสือที่มีอยู่ โดยไม่สนใจหนังสือที่กำลังยืมอยู่คำสั่ง continue จะเหมาะสมที่สุด:

String[] books = { "Harry Potter", "Lord of the Rings", "Moby Dick", "Great Expectations" };
boolean[] isBorrowed = { false, true, false, true };

for (int i = 0; i < books.length; i++) {
    if (isBorrowed[i]) {
        continue;
    }
    System.out.println(books[i]);
}

ในลูปนี้ ถ้าหนังสือถูกยืมคำสั่ง continue จะข้ามคำสั่งพิมพ์และดำเนินการซ้ำในครั้งต่อไป


โฟลว์การควบคุมเป็นแนวคิดพื้นฐานใน Java ที่ทำให้เราสามารถทำแอพไดนามิก มีประสิทธิภาพ และโต้ตอบได้ ไม่ว่าจะเป็นแอปเครื่องคิดเลขอย่างง่ายหรือซอฟต์แวร์ระดับองค์กรที่ซับซ้อน การทำความเข้าใจและใช้โครงสร้างโฟลว์ควบคุมอย่างมีประสิทธิภาพ เช่น ข้อความแสดงเงื่อนไข การวนซ้ำ และสาขาสามารถปรับปรุงฟังก์ชันการทำงานของแอปพลิเคชันและประสบการณ์ผู้ใช้ของคุณได้อย่างมาก

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


Java คืออะไร

Java คือ ตอนที่ 1 : ไวยากรณ์ (Syntax) พื้นฐานและโครงสร้างโปรแกรม (Program Structure)
Java คือ ตอนที่ 3 : อาร์เรย์ (Arrays) และสตริง (Strings)