การควบคุมการทำงาน (Control Structure)
กลุ่มคำสั่ง Selection
เป็นกลุ่มคำสั่งที่ใช้ในการตัดสินใจในการเลือกเงื่อนไขต่าง
ๆ ภายในโปรแกรมเพียงเงื่อนไขเดียวมาทำงาน ได้แก่ คำสั่ง if และ Switch
- คำสั่ง if เป็นคำสั่งที่ใช้ในการตรวจสอบเงื่อนไขว่าเป็นจริงหรือเท็จ
โดยถ้าเป็นจริงจะให้ทำงานใด และถ้าเป็นเท็จจะให้ทำงานใด แบ่งออกเป็น 2
แบบ คือ
- แบบเงื่อนไขเดียว (Simple if)
มีรูปแบบดังนี้
if(เงื่อนไข){ คำสั่งต่าง
ๆ เมื่อเงื่อนไขเป็นจริง;}
- แบบ 2 เงื่อนไข (if..else)
ใช้ในกรณีที่มี 2 เงื่อนไขคือ ถ้าเงื่อนไขเป็นจริงให้ทำงานงานหนึ่ง
แต่ถ้าเป็นเท็จให้ทำงานอีกอย่างหนึ่ง มีรูปแบบดังนี้
if (เงื่อนไข){คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;}
else {คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นเท็จ}
|
ตัวอย่าง การรับค่าข้อมูลจาก Keyboard
แล้วนำข้อมูลที่ได้มาเปลียบเทียบเงื่อนไข
class IfCheck{
public static void main(String
args[]){
int a = Integer.parseInt (args[0]);
int b = Integer.parseInt (args[1]);
if (b == 0){
System.out.println("Error:
divide by zero!");
System.exit(0);
}
System.out.println(a / b);
}
}
|
นอกจากนี้แล้วยังสามารถสร้างเงื่อนไขที่ซ้อนกันได้ด้วย
เช่น
if (เงื่อนไข)
{ คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;
if(เงื่อนไข){คำสั่งต่าง
ๆ เมื่อเงื่อนไขเป็นจริง;}
}
|
ตัวอย่าง การเปรียบเทียบโดยใช้เงื่อนไขที่มีการซ้อนกันอยู่ภายใน
class IfElse{
public static void main(String
args[]){
int score = Integer.parseInt(args[0]);
if (score>=85) System.out.println("A");
else if (s >=75) System.out.println("B");
else if (s >=65) System.out.println("C");
else if (s >=55) System.out.println("D");
else System.out.println("F");
}
}
|
- คำสั่ง switch เป็นการตรวจสอบเงื่อนไขโดยดูจากค่าตัวแปรโดยที่คำสั่ง
Switch จะใช้ได้กับตัวแปรที่เป็นค่าคงที่เท่านั้น มีรูปแบบดังนี้
switch(ตัวแปร)
{ case ค่าที่1:คำสั่ง 1;
break;
case ค่าที่2:คำสั่ง 2;
break;
case ค่าทื่ n:คำสั่ง n;break;
default : คำสั่งเมื่อไม่มีค่าที่ตรงกับที่ระบุใน
case;
}
|
ตัวอย่าง การเปรียบเทียบเงื่อนไขแบบหลายตัวเลือก
class Switch1{
public static void main(String
args[]){
char g = args[0] . charAt(0);
switch (g){
case "A" : System.out.println("ดีมาก");
break;
case "B" :System.out.println("ดี");
break;
case "C" :System.out.println("พอใช้");
break;
case "D" :System.out.println("อ่อน");
break;
case "F" :System.out.println("ไม่ผ่าน");
break;
default :System.out.println("Invalid");
}
}
}
|
กลุ่มคำสั่ง Iteration
เป็นกลุ่มคำสั่งที่ใช้ในการวนรอบ (loop)
การทำงานไปเรื่อย ๆ จนกว่าเงื่อนไขที่กำหนดไว้จะเป็นจริง จึงจะหลุดออกจากวงโคจรการวนรอบนี้ได้
ได้แก่ while, do..while, และ for
- คำสั่ง while เป็นรูปแบบการวนซ้ำไปเรื่อย
ๆ จนกว่าเมื่อตรวจสอบเงื่อนไขแล้วเป็นเท็จ จึงจะหลุดออกจาก loop มีรูปแบบดังนี้
while(เงื่อนไข){
คำสั่งเมื่อเงื่อนไขเป็นจริง;
}
|
ตัวอย่าง การใช้การวนซ้ำแบบ
while โดยจะทำการเปรียบเทียบเงื่อนไขก่อนจึงจะทำคำสั่งที่บรรจุอยู่ภายใน
class WhileDeno{
public static void main(String
args[]){
int n = 10;
while (n > 0){
System.out.println("tick
"+n);
n--;
}
}
}
|
- คำสั่ง do..while
เป็นรูปแบบการวนซ้ำไปเรื่อย ๆ แต่จะไม่มีการตรวจสอบเงื่อนไขก่อนการประมวลผลคำสั่งต่าง
ๆ ที่อยู่ภายใน loop ในครั้งแรก จากนั้นจึงค่อยทำการตรวจสอบเงื่อนไข ถ้าเป็นจริงก็จะกลับไปทำคำสั่งต่าง
ๆ แต่ถ้าเป็นเท็จก็จะหลุดออกจาก loop มีรูปแบบดังนี้
do{
คำสั่งเมื่อเงื่อนไขเป็นจริง;
}while(เงื่อนไข);
|
ตัวอย่าง การใช้การวนซ้ำแบบ do..while
จะทำการประมวลผลคำสั่งที่บรรจุอยู่ภายในก่อนทีจะทำการเปรียบเทียบเงื่อนไข
class DoWhileDeno{
public static void main(String
args[]){
int n = 10;
do{
System.out.println("tick
"+n);
}while (--n>0);
}
}
|
- คำสั่ง for เป็นคำสั่งที่ใช้ในการตรวจสอบเงื่อนไข
พร้อมทั้งกำหนดค่าเริ่มต้นและการเปลี่ยนแปลงของค่าเริ่มต้นไปพร้อม ๆ กัน
โดยตราบใดที่เงื่อนไขในคำสั่ง for เป็นจริง ก็จะทำงานตามคำสั่งที่อยู่ภายในต่อไป
มีรูปแบบดังนี้
for(ค่าตัวแปรเริ่มต้น; เงื่อนไข;เปลี่ยนแปลงค่าตัวแปร){
คำสั่งเมื่อเงื่อนไขเป็นจริง
}
|
ตัวอย่าง การใช้การวนซ้ำแบบ
for จะทำการประมวลผลคำสั่งต่าง ๆ จนกว่าเงื่อนไขจะเป็นเท็จ
class ForDemo{
public static void main(String
args[]){
for (int i = 1; i <= 10;
i++)
System.out.println("i
= " + i);
}
}
|
|