คำสั่งเงื่อนไขเป็นหนึ่งในคำสั่งสำหรับการควบคุมโปรแกรมซึ่งอีกอันได้แก่คำสั่งทำซ้ำ ซึ่งทั้ง 2 อย่างนี้มีความสำคัญต่อการเขียนโปรแกรมต่อๆไปเป็นอย่างมาก จึงควรมีต้องฝึกให้ชำนาญ
เงื่อนไข if
เป็นเงื่อนที่ตรวจสอบว่าสิ่งที่ภายใต้เงื่อนไงที่เขียนเอาไว้เป็นจริงหรือไม่ ถ้าจริงจะทำตามเงื่อนที่เขียนไว้ ถ้าไม่เป็นไปตามเงื่อนไขก็จะไม่ทำตามคำสั่ง จะไปตรวจสอบคำสั่งที่อยู่ถัดจาก if ออกไป
if(เงื่อนไข)
{
คำสั่งที่1; // มีได้มากกว่า 1 คำสั่ง
}
คำสั่งที่2 // มีได้มากกว่า 1 คำสั่ง
รูป 3-1
ถ้ามีคำสั่งเดียวภายในเงื่อนไข if ไม่ต้องมี { } ได้ เช่น
If(number%2 == 0)
{
System.out.println(“even number”);
}
เขียนแบบไม่มี { } ก็ได้
If(number%2 == 0) System.out.println(“even number”);
แต่ถ้ามีมากกว่า 1 ต้องใส่ { } ให้เรียบร้อยจะเห้นได้จากตัวอย่างต่อๆไป
ตัวอย่าง
รูป 3-2
โปรแกรมนี้ประกาศตัวแปรเป็นตัวเลขจำนวนเต็มถามว่าจำนวนเต็มนี้เป็นเลขคู่หรือไม่ ซึ่งการจะรู้ว่าเป็นเลขคู่หรือไม่ ต้องรู้ว่า เลขคู่คือตัวเลขที่เมื่อเอาสองไปหารแล้วลงตัว
บรรทัดที่ 6 : ประกาศตัวแปร number เป็นชนิด int
บรรทัดที่ 8 : สร้างเงื่อนไข if ถามว่า number หาร 2 แล้วเศษเป็นศูนย์หรือไม่
บรรทัดที่ 10 : เขียนคำสั่ง ถ้าเงื่อนไขเป็นจริงให้ ให้บอกว่าตัวเลขนั้นเป็นเลขคู่
ได้ผลลัพธ์ใน console ดังนี้
รูป 3-3
คำสั่ง if else
คำสั่ง if เป็นคำสั่งที่ตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่ หากจริงจะทำตามคำสั่ง แต่ไม่บอกว่าถ้าเท็จต้องทำอะไรหรือไม่ ส่วน if else จะเพิ่มเติมจาก if ขึ้นมาว่าถ้าจริงให้ทำอะไร หากเท็จให้ทำอะไรต่อ ก็จะเป็นการตรวจสอบเงื่อนไขให้สมบูรณ์ขึ้น
if(เงื่อนไข)
{
คำสั่งที่1; // มีได้มากกว่า 1 คำสั่ง
}
else
{
คำสั่งที่2; // มีได้มากกว่า 1 คำสั่ง
รูป3-4
}
คำสั่งอื่น;
ตัวอย่าง
รูป 3-5
โปรแกรมนี้ต้องการดูว่าคะแนนสอบผ่านหรือไม่หากมากกว่าหรือเท่ากับ 50 คะแนนถือว่าผ่าน ถ้าไม่ถือว่าสอบไม่ผ่าน
บรรทัดที่ 8 : สร้างเงื่อนไขถามว่าคะแนนมากว่าหรือเท่ากับ50หรือไม่
บรรทัดที่10-11: หากใช่ ให้แสดงข้อความตามคำสั่งทั้งสอง
บรรทัดที่ 14 : หากเงื่อนไขเป็นเท็จ ให้ทำตามคำสั่งในบรรทัดที่ 16-18 จากนั้นให้ออกจากเงื่อนไข
นอกจากรูปแบบ
if(เงื่อนไข)
{
คำสั่งที่1; // มีได้มากกว่า 1 คำสั่ง
}
else
{
คำสั่งที่2; // มีได้มากกว่า 1 คำสั่ง
}
คำสั่งอื่น;
คำสั่ง if else สามาเขียนได้ในรูปแบบหนึ่งคือ ตัวแปร = เงื่อนไข? คำสั่ง1:คำสั่ง 2;
c = a > b ? a : b;
a มากกว่า b หรือไม่ ถ้าใช่ให้ทำ a ถ้าไม่ใช่ ให้ทำ b
เงื่อนไขแบบ Nested if
คือจะมี การใช้ if else ต่อกันยาวมากกว่า 1 ครั้งติดกัน จึงเรียกว่า Nested if แปลว่า if ที่ซ้อนๆกัน ช่วยในการตรวจสอบ เงื่อนไขที่ซับซ้อนมากขึ้น กล่าวก็คือมีหลายเงื่อนไข
if(เงื่อนไข)
{
คำสั่งที่1; // มีได้มากกว่า 1 คำสั่ง
}
else if(เงื่อนไข)
{
คำสั่งที่2; // มีได้มากกว่า 1 คำสั่ง
}
else if(เงื่อนไข)
{
คำสั่งที่3; // มีได้มากกว่า 1 คำสั่ง
}
รูป3-6
บรรทัดที่ 9 : ประกาศตัวแปร day เป็นชนิด int
บรรทัดที่ 10 : เรียกใช้คำสั่ง Scan สำหรับ input ข้อมูลจากแป้นพิมพ์
บรรทัดที่ 11 :แสดงผลให้รับข้อมูลเป็นเลขจำนวนเต็ม 1-7 บรรทัดที่ 12 ให้เก็บสิ่งที่ input เข้ามาใส่ไว้ในตัวแปล day
บรรทัด14-61 : จากนั้นตรวจสอบด้วยเงื่อนไข if else ต้องตรวจสอบปีกกาให้ครบคู่กัน
แต่เนื่อง if else แบบข้างบน มีเพียงคำสั่งเดียวในแต่ละเงื่อนไข จึงสามารถเขียนได้อีกวิธีหนึ่ง ดังรูปต่อไปนี้
รูป 3-7
ผลลัพธ์ที่ได้
รูป 3-8
เงื่อนไขแบบ switch-case
เป็นอีกรูปแบบหนึ่งของคำสั่งเงื่อนไข เมื่อเรากำหนดเงื่อนไขขึ้น โปรแกรมจะทำการตรวจสอบว่าตรงกับกรณีใดๆที่กำหนดเอาไว้หรือหากมีจะทำกรณีนั้นและจบโปรแกรม
switch(ตัวแปรหรือนิพจน์ที่ต้องการตรวจสอบ)
{
case ค่าที่ 1:
คำสั่งที่ 1;
break;
case ค่าที่ 2:
คำสั่งที่ 2;
break;
// ใส่ case เท่าที่ต้องการ
default :
คำสั่งที่ 3;
}
break เป็นสิ่งที่ลืมไม่ได้ในแต่ละ case เพราะเป็นคำสั่งหยุดการทำงานจากเงื่อนไขทันที จะได้ไม่ตรวจสอบ case ที่เหลืออีก (ถ้าเป็น ลูป(loop) คำสั่ง break จะเป็นการออกจากลูป)
default คล้ายกับ else ใน if else กล่าวคือ เป็นส่วนที่ถ้าสิ่งที่รับเข้ามาไม่ตรงกับ case ไหนเลย ก็ให้ กำหนดว่าจะทำคำสั่งอะไร
ตัวอย่าง
รูป 3-9
บรรทัดที่ 9-12 : เป็นการประกาศตัวแปรและรับตัวเลขจากแป้นพิมพ์มาใส่ในตัวแปร
บรรทัดที่ 14 : ใช้คำสั่งเงื่อนไขแบบ switch-case รับตัวแปร num มาตรวจสอบ case
บรรทัดที่ 16-18 : ถ้าเลขที่รับเข้ามาเป็น เลข 1 จะตรงกับ case 1 ก็จะทำคำสั่งแสดงผลออกทางหน้าจอว่า
THE SELFLESS และ case อืนๆก็จะออกตามคำสั่งที่อยู่ในปีกกา
บรรทัดที่ 32 : default หากผู้ใช้ใส่ตัวเลขเข้ามาเกินกว่า 1-5 ก็จะไม่อยู่ใน case ที่เขียนลงไปให้แสดงผลคำว่า
DIVERGENT
Tag ที่น่าสนใจ: เงื่อนไข if เงื่อนไข_if_else nested_if คำสั่งทำหรือคำสั่งเงื่อนไข การเขียนโปรแกรม การเขียนโปรแกรมภาษา_java คำสั่งควบคุมโปรแกรม ตรวจสอบเงื่อนไข โปรแกรมนี้ต้องการดูว่าคะแนนสอบผ่านหรือไม่ nested_if_else การใช้คำสั่ง_if_else การใช้คำสั่ง_if การใช้คำสั่ง_else การใช้คำสั่ง_else_if
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM