คำสั่งย่อยแบบมีเงื่อนไขสามารถแบ่งย่อยได้เป็น 3 รูปแบบตามรูปแบบไวยากรณ์
ถ้าคำสั่ง:
คำสั่ง if เป็นคำสั่งสาขาเดียวที่มีเงื่อนไขเดียว ซึ่งควบคุมลำดับการทำงานของโปรแกรมตามเงื่อนไข
if(expression)/*หากนิพจน์เป็นจริง คำสั่งผสมจะถูกดำเนินการ มิฉะนั้นจะไม่ถูกดำเนินการ*/{//statement}
คำสั่ง if-else:
คำสั่ง if-else เป็นคำสั่ง double-branch เงื่อนไขเดียว ซึ่งควบคุมการทำงานของโปรแกรมตามเงื่อนไขหนึ่งๆ รูปแบบไวยากรณ์ของคำสั่ง if-else คือ:
if (expression)/*หากนิพจน์เป็นจริง ให้รันคำสั่ง 1 หรือมิฉะนั้น รันคำสั่ง 2*///statement 1}else{//statement 2}
คำสั่ง if-else if-else:
if-else คำสั่ง if-else เป็นคำสั่งย่อยแบบหลายเงื่อนไข กล่าวคือ คำสั่งนี้ควบคุมการไหลของโปรแกรมตามเงื่อนไขต่างๆ รูปแบบไวยากรณ์ของคำสั่ง if-else if-else คือ:
if (นิพจน์ 1)/*หากนิพจน์ 1 เป็นจริง ให้ดำเนินการคำสั่ง 1 หรือไม่เช่นนั้นให้ตัดสินนิพจน์ 2*/{//คำสั่ง 1 ต่อไป} elseif (นิพจน์ 2)/*หากนิพจน์ 2 เป็นจริง ให้ดำเนินการคำสั่ง 2 มิฉะนั้น ตัดสินนิพจน์ 3*///Statement 2}elseif(expression 3)/*หากนิพจน์ 3 เป็นจริง ดำเนินการคำสั่ง 3 ต่อไป หรือตัดสินนิพจน์ถัดไป*/{//Statement 3}..... .else /*หากไม่มีนิพจน์ข้างต้นเป็นจริง ให้รันคำสั่ง 4*/{//statement 4}
สังเกต:
1) ค่าของนิพจน์ในวงเล็บหลังคีย์เวิร์ด if ต้องเป็นประเภท boolean
2) ในคำสั่งย่อยแบบมีเงื่อนไข หากมีคำสั่งเดียวในคำสั่งผสม ก็สามารถละเว้น {} ได้
ตัวอย่าง:
publicclassMain {publicstaticvoidmain(Stringargs []) {intx = 3; if (x = = 1) {System.out.print (ValueofXis1);}elseif (x = = 2) {System.out.print (ValueofXis2);}elseif (x==3){System.out.print(ValueofXis3);}else{System.out.print(ValueofXis0);}}}
ผลการวิ่งมีดังนี้:
คุณค่าของXis3