การเปรียบแบบมีเงื่อนไข (Conditionals) if .. else

12/17/2556 0 Comments

Conditionals if ..else if ...else


ภาษา Java ใช้ boolean ในการประเมินผลเงื่อนไข จะมีการคืนค่าเป็น จริง  true  กับ เท็จ  false  เท่านั้น

ตัวอย่าง

public class Main {
    public static void main(String[] args) {
        int a = 4;
        boolean b = a == 4;
        if (b) {
            System.out.println("It's true!");
        }
    
    }
}

หรือ
public class Main {
    public static void main(String[] args) {
        int a = 4;
        boolean b = a;
        if (b == 4) {
            System.out.println("It's true!");
        }
        
    }
}

Boolean operators

ตัวดำเนินการในการเปรียบเทียบที่ใช้บ่อย
public class Main {
    public static void main(String[] args) {
        int a = 4;
        int b = 5;
        boolean result;
        result = a < b; // true
        result = a > b; // false
        result = a <= 4 // a smaller or equal to 4 - true
        result = b >= 6 // b bigger or equal to 6 - false
        result = a == b // a equal to b - false
        result = a != b // a is not equal to b - true
        result = a > b || a < b // Logical or - true
        result = 3 < a && a < 6 // Logical and - true
        result = !result // Logical not - false
    }
}

if - else and between


เงื่อนไขแบบ if อย่างเดียว
public class Main {
    public static void main(String[] args) {
        if (a == b) {
            // a และ b เท่ากัน
        }       
    }
}

เงื่อนไขแบบ if ... else
public class Main {
    public static void main(String[] args) {
        if (a == b) {
            // ส่วนนี้เรารู้กันแล้ว
        } else {
            // a และ b ไม่เท่ากัน... :/
        } 
    }
}

ถ้า code ภายใน if หรือ else มีบรรทัดเดียวไม่ต้องใส่ {} ก็ได้
public class Main {
    public static void main(String[] args) {
        if (a == b) System.out.println("Yeah!");
        else System.out.println("Ohhh...");
    }
}

หรือ
public class Main {
    public static void main(String[] args) {
        if (a == b)
            System.out.println("Another line Wow!");
        else
            System.out.println("Double rainbow!");
    }
}

แนะนำ

มีอีกทางเลือกหนึ่งสำหรับการเขียน if...else ที่มีคำสั่งเดียว
public class Main {
    public static void main(String[] args) {
        int a = 4;
        int result = a == 4 ? 1 : 8; //ผลลัพจะเท่ากับ 1
    }
}

ผลลัพธ์เหมือนกันแต้ code ต่างกันมาก
public class Main {
    public static void main(String[] args) {
        int a = 4;
        int result;
        if (a == 4) {
            result = 1;
        } else {
            result = 8;
        }
    }
}

== and equals

การใช้ == จะใช้กับตัวแปร string ธรรมดาได้ แต่ถ้าเป็น object ต้องใช้ method equals() เพื่อเปรียบเทียบค่าใน object

public class Main {
    public static void main(String[] args) {
        String a = new String("Wow");
        String b = new String("Wow");
        String sameA = a;
        
        boolean r1 = a == b; // เป็นเท็จ, เป็นคนละ object
        boolean r2 = a.equals(b); // จริง, ข้อความใน object เหมือนกัน
        boolean r3 = a == sameA; // จริง, เป็น object เดียวกัน
        
    }
}

แบบฝึกหัด

แก้ไขโค้ดให้แสดงผลคำว่า Success! ให้ได้

public class Main {
    public static void main(String[] args) {
        String a = new String("Wow");
        String b = "Wow";
        String c = a;
        String d = c;

        boolean b1 = a == b;
        boolean b2 = b.equals(b + "!");
        boolean b3 = !c.equals(a);

        if (b1 && b2 && b3) {
            System.out.println("Success!");
        }
    }
}


public class Main {
    public static void main(String[] args) {
        String a = new String("Wow");
        String b = "Wow";
        String c = a;
        String d = c;

        boolean b1 = a.equals(b);
        boolean b2 = b.equals(b);
        boolean b3 = c.equals(a);

        if (b1 && b2 && b3) {
            System.out.println("Success!");
        }
    }
}