การใช้ if, if else และ if else if

| ไอที | Java | 48869

การใช้ if, if else และ if else if ในภาษาจาวา

การใช้ if, if else และ if else if ในภาษาจาวาโดยทั่วไป เป็นการใช้เพื่อให้โปรแกรมตัดสินใจ เหมือนกับ if-then-else ใน Visual Basic, Pascal และ Fortran ถ้าเปรียบเป็นภาษาพูด if ก็แปลตรงตัวว่า ถ้า else ก็คือ ถ้าไม่

มีรูปแบบการใช้ดังนี้

if(condition){ 
	statement 1;
	statement 2;
	...
}
else{
	statement 1;
	statement 2;
	...
}

Note. condition คือเงื่อนไงที่ต้องการ statement ก็คือคำสั่งในโปรแกรม อาจประกอบด้วยหลายคำสั่ง ถ้าหากมีคำสั่งมากกว่าหนึ่งให้ใส่วงเล็บปีกกา{} ครอบคำสั่งทั้งหมดไว้ แต่ถ้ามีเพียงคำสั่งเดียวไม่ต้องใส่วงเล็บปีกกาก็ได้ ถ้าหากไม่มีคำสั่งใด ๆ ให้ใส่วงเล็บเปล่า หรือใส่เครื่องหมาย ; ไว้ก็ได้

condition เป็นข้อมูลขนิด boolean ซึ่งต้องเป็นจริงหรือเท็จเท่านั้น ถ้าเป็นจริงจะทำคำสั่งใน if แต่ถ้าเป็นเท็จจะทำในคำสั่ง else เรามาดูตัวอย่างกันดีกว่า

ตัวอย่างที่ 1 โปรแกรมคำนวณเกรด โดยใช้ if

import java.util.Scanner;
public class Grade2 {
    public static void main(String args[]){
        System.out.print("Input Score : ");
        Scanner in = new Scanner(System.in);
        int score = in.nextInt();
        if(score < 50) System.out.println("Your Score : F");
        if(score >= 50 && score < 60) System.out.println("Your Score : D");
        if(score >= 60 && score < 70) System.out.println("Your Score : C");
        if(score >= 70 && score < 80) System.out.println("Your Score : B");
        if(score >= 80) System.out.println("Your Score : A");
    }
}

โปรแกรมนี้รับค่าคะแนนมาจากแป้นพิมพ์ เราใช้ if เพื่อตรวจสอบไปแต่ละเกรด จะเห็นว่าเราใช้แต่ if ตามหลัง if มีแค่คำสั่งเดียว ไม่ต้องใส่วงเล็บปีกกาครอบก็ได้ โปรแกรมนี้จะตรวจสอบทุก if นั่นคือตรวจสอบว่าน้อยกว่า 50 ต่อไป ก็ มากกว่า 50 และ น้อยกว่า 60 หรือไม่ และตรวจสอบไปเรื่อย ๆ ทุก ๆ เกรดถ้าคะแนน น้อยกว่า 50 แล้วปริ้น F ออกมา แต่ก็ต้องตรวจสอบว่าเป็นเกรด D C B หรือ A หรือไม่

ตัวอย่างที่ 2 โปรแกรมคำนวณเกรด โดยใช้ if else

import java.util.Scanner;
public class Grade3 {
    public static void main(String args[]){
        System.out.print("Input Score : ");
        Scanner in = new Scanner(System.in);
        int score = in.nextInt();
        if(score < 50) System.out.println("Your score : F");
        else{
            if(score < 60) System.out.println("Your score : D");
            else{
                if(score < 70) System.out.println("Your score : C");
                else{
                    if(score < 80) System.out.println("Your score : B");
                    else System.out.println("Your score : A");
                }
            }
        }
    }
}

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

ตัวอย่างที่ 3 โปรแกรมคำนวณเกรด โดยใช้ if else if

import java.util.Scanner;
public class Grade {
    public static void main(String args[]){
        System.out.print("Input Score : ");
        Scanner in = new Scanner(System.in);
        int score = in.nextInt();
        if(score < 50) System.out.println("Your Grade : F");
        else if(score < 60) System.out.println("Your Grade : D");
        else if(score < 70) System.out.println("Your Grade : C");
        else if(score < 80) System.out.println("Your Grade : B");
        else System.out.println("Your Grade : A");
    }
}

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

หมายเหตุ. โปรแกรมข้างบนทั้งสามนี้ มี input กับ output เหมือนกัน
Output ที่ได้คือ
Input Score : 70
Your Grade : B

Input Score : 53
Your Grade : D

Comparison Operators ตัวอย่างข้างบน เราใช้เครื่องหมาย < ซึ่งหมายถึง น้อยกว่า ซึ่งยังมีอีกหลายเครื่องหมายที่ต้องใช้ในการตัดสินใจสำหรับการเขียนโปรแกรม เรามาดูกันเลยว่ามีอะไรบ้าง


เครื่องหมายเหล่านี้ เป็นเครื่องหมายสำหรับคืนค่า boolean

Combining Conditions เมื่อคุณต้องการรวม condition ตั้งแต่สองอันขึ้นไป ภายใน if อันเดียว สามารถเชื่อม condition เหล่านั้นได้โดยใช้สัญลักษณ์ดังแสดงข้างล่าง



comments