การเลือกกระทำตามเงื่อนไข (Decision)
การตัดสินใจ หรือเลือกเงื่อนไข คือ การเขียนกระบวนการที่เลือกกระทำอย่างใดอย่างหนึ่ง โดยปกติจะมีเหตุการณ์ให้เลือกทำ 2 กระบวนการ ได้แก่กรณีเป็นจริง และกรณีเป็นเท็จ บางกระบวนการมีความซับซ้อนก็จะใช้เงื่อนไขหลายชั้น เช่น การตัดเกรดตามคะแนนนักเรียน การคำนวณค่านายหน้าในระบบเอ็มแอลเอ็ม (Multi-Level Marketing) เป็นต้น
System.out.println((1 == 2) ? “3” : “4”); // 4
System.out.println((‘a’ == ‘a’) ? “5” : “6”); // 5
ตัวอย่าง 2.3 แสดงการใช้คำสั่งเลือกตามเงื่อนไข
– คำถาม : ผลลัพธ์ของโปรแกรมนี้คืออะไร
int x; // j0201
x = 6;
if (x > 5) System.out.println(“more than 5:” + x);
if (x > 5 && x < 10) System.out.println(“five to ten”);
if (x > 5 || x < 10) System.out.println(“all numbers”);
if (x > 10) {
System.out.print(“more than 10:”);
System.out.println(x);
}
ตัวอย่าง 2.4 แสดงการทำงานของ && และ ++
int x;
x = 6;
if (x > 5) x++; // 7
if (x++ > 5 && x++ < 10) x++; // 10
if (x++ < 5 && x++ < 10) x++; // 11
System.out.println(x); // 11
if (x++ > 10 && x++ < 10) x++;// 13
System.out.println(x); // 13
ตัวอย่าง 2.5 แสดงการใช้คำสั่ง if และ else และ .equals
– ตัวแปรที่มี Data Type เป็น Comparable นำมาหาผลรวม หรือคำนวณไม่ได้
– คำถาม : ผลลัพธ์ของโปรแกรมนี้คืออะไร
int x; // j0202
x = 6;
if (x > 5) System.out.println(“more than 5”);
else System.out.println(“less than or equal 5”);
if (x > 10) System.out.println(“more than 10”);
else { System.out.println(“less than or equal 10”); }
Comparable a[] = new Comparable[5];
a[0] = new Integer(3);
a[1] = new Integer(10);
a[2] = “abc”;
System.out.println(a[0] + ” ” + a[1] + ” ” + a[2]);
if (a[2].equals(“abc”)) { System.out.println(“equal”); } // equal
if (a[0].compareTo(a[1]) < 0) System.out.print(a[0]); // 3
if (a[1].compareTo(a[0]) > 0) System.out.print(a[0]+””+a[1]); // 310
if (a[0].compareTo(a[0]) == 0) System.out.print(“equal”); // equal
System.out.print(a[0].compareTo(a[1])); // -1
ตัวอย่าง 2.6 แสดงการใช้ switch และ case
– โปรแกรมนี้ต้อง import java.util.Date; เพื่อใช้เมธอด getTime()
– switch ใช้ได้กับ Data Type 4 แบบ คือ char, byte, short หรือ int
– คำถาม : คำว่า switch, case, default, break แตกต่างกันอย่างไร
byte a = (byte) (new Date().getTime() % 5); // j0203
switch (a) {
case 1:
System.out.println(“one”); break;
case 2:
System.out.println(“two”); break;
default:
System.out.println(“not found” + a);
break;
}