การเลือกกระทำตามเงื่อนไข (Decision)

การเลือกกระทำตามเงื่อนไข (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;

}