คำสั่งเช็คเงื่อนไข If else,Switch case -พื้นฐานจาวา

คำสั่งเช็คเงื่อนไข

คำสั่งเช็คเงื่อนไข  คืออะไร?

คำสั่งเช็คเงื่อนไข (Condition statements) คือ คำสั่งที่ใช้สำหรับเลือกทำงานอย่างใดอย่างหนึ่งโดยใช้เงื่อนไขเป็นส่วนช่วยในการตัดสินใจ

ในภาษาจาวามีคำสั่งเช็คเงื่อนไข 2 รูปแบบ ได้แก่
1. คำสั่ง If-else
2. คำสั่ง Switch case
บทนี้ Matter Devs จะพาทุกคนไปเรียนรู้คำสั่งเช็คเงื่อนไขแต่ละอันกัน โดยเริ่มตั้งแต่คำสั่งง่ายที่สุดอย่าง If statements แต่ก่อนจะเริ่มอยากให้ทุกคนไปทบทวนเรื่องตัวดำเนินการเปรียบเทียบก่อนเพราะมักจะนำมาใช้กับคำสั่งเช็คเงื่อนไขเสมอ

If statements

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

if (condition) {
   statements;
}

  • condition คือ เงื่อนไขสำหรับตัดสินใจ
  • statements คือ ชุดคำสั่งที่จะถูกทำเมื่อเงื่อนไขใน condition เป็นจริง

    ตัวอย่างการใช้งาน
import java.util.Scanner;
public class IfStatement {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        System.out.print("Enter your score : ");
        int score = kb.nextInt();
        if(score >= 40){
            System.out.println("ยินดีด้วย คุณสอบผ่าน");
        }
        System.out.println("ขอให้โชคดี");
    }
}

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

If-else statements

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

if (condition) {
   statements;
} else {
   statements;
}

ตัวอย่างการใช้งาน

import java.util.Scanner;
public class IfElseStatement {
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        System.out.print("Input Score1 : ");
        int score1 = in.nextInt();
        System.out.print("Input Score2 : ");
        int score2 = in.nextInt();
        int finalS = (score1 + score2);
        if(finalS>50){
            System.out.println("ยินดีด้วย คุณสอบผ่าน");
        } else {
            System.out.println("เสียใจด้วย คุณสอบตก");
        }
    }
}

จากตัวอย่างด้านบน เป็นการนำคะแนนสอบ 2 ครั้งมาบวกกัน ถ้าบวกกันแล้วมากกว่า 50 จะแสดงผลว่า ยินดีด้วย คุณสอบผ่าน แต่ถ้าคะแนนน้อยกว่าหรือเท่ากับ 50 จะแสดงผลว่า เสียใจด้วย คุณสอบตก

Else If statements

ใช้กรณีมีหลายเงื่อนไข และการทำงานในแต่ละอย่างแตกต่างกัน โดยมีรูปแบบดังนี้

if (condition1) {
   statements;
} else if {
   statements;
} else {
   statements;
}

ตัวอย่างการใช้งาน

import java.util.Scanner;
public class ElseIfStatement {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        System.out.print("enter your score: ");
        int score = kb.nextInt();
        if(score >= 85){
            System.out.println("A");
        } else if(score >= 75){
            System.out.println("B");
        } else if(score >= 60){
            System.out.println("C");
        } else if(score >= 40){
            System.out.println("D");
        } else{
            System.out.println("F");
        }
    }
}

เพื่อทดสอบความเข้าใจ เราจะลองให้คุณเขียนโปรแกรมโดยรับค่าอุณหภูมิจากผู้ใช้ และแสดงผลตามที่กำหนดไว้ด้านล่าง โดยใช้คำสั่ง else if (มีเฉลยท้ายบท)

  1. T <= 0 “It’s very very cold”
  2. 0 < T <= 10 “It’s cold”
  3. 10 < T <= 20 “It’s cool out”
  4. 20 < T <= 30 “It’s warm”
  5. T > 30 “It’s hot”

Switch case

คำสั่ง switch ใช้กรณีที่มีเงื่อนไขหลายๆกลุ่ม โดยจะเลือกทำงานของเงื่อนไขที่ตรงกันเพียงแค่เงื่อนไขเดียวเท่านั้น มีรูปแบบดังนี้

switch (condition) {
     case x : statements; break;
     case y : statements; break;
     default : statements;
}

  • switch – เราจะใส่เงื่อนไขที่ถูกนำมาคิดโดยผลต้องเป็น int หรือ char เท่านั้น
  • case – ค่าที่อยู่ใน case ถ้าตรงกับเงื่อนไขใน switch คำสั่งที่อยู่ใน case นั้นจะทำงาน
  • break – เป็นคำสั่งที่ใช้ในการออกจาก switch
  • default – เมื่อไม่ตรงกับ case ไหนเลยจะมาทำคำสั่งที่ default แทน

ตัวอย่างการใช้งาน

public class Switch {
    public static void main(String[] args) {
        char grade = 'A';
        switch (grade) {
            case 'A': System.out.println("Excellent"); break;
            case 'B': System.out.println("Good"); break;
            case 'C': System.out.println("So So"); break;
            case 'D': System.out.println("Fails"); break;
            case 'F': System.out.println("Get lost"); break;
            default: System.out.println("Invalid");
         }
    }
}
//output "Excellent"

คำสั่ง break ถูกใช้เพื่อให้โปรแกรมกระโดดข้ามการทำงานในคำสั่ง switch แล้วไปทำคำสั่งแรกที่ตามหลังคำสั่ง switch คำถามคือ ถ้าไม่ใส่คำสั่ง break จะเกิดอะไรขึ้น? คำตอบคือ ถ้าสมมติเรากำหนด grade = ‘D’ ผลลัพธ์ของโปรแกรมจะเป็น

Fails
Get lost
Invalid

เฉลยแบบฝึกหัด
import java.util.Scanner;
public class Temperature {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        System.out.print("enter temperature: ");
        float temp = kb.nextFloat();
        if (temp <= 0){
            System.out.println("It's very very cold");
        } else if (temp > 0 && temp <= 10) {
            System.out.println("It's cold");
        } else if (temp > 10 && temp <= 20) {
            System.out.println("It's cool out");
        } else if (temp > 20 && temp <= 30) {
            System.out.println("It's warm");
        } else {
            System.out.println("It's hot");
        } 
    }
}

บทนี้เราได้เรียนรู้เกี่ยวกับคำสั่งเช็คเงื่อนไขแล้ว ในบทถัดไปเราจะเรียนเรื่องคำสั่งวนซ้ำ for,do-while,while ในภาษาจาวากัน