วันอาทิตย์ที่ 23 ธันวาคม พ.ศ. 2555

 การควบคุมการทำงาน (Control Structure)  
www.google.com
  www.udru.ac.th


        กลุ่มคำสั่ง Sequential structure
       คือ โครงสร้างแสดงขั้นตอนการทำงานที่เป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวท่านั้น สามารถแสดงการทำงานของโครงสร้างนี้ โดยใช้ผังงานได้

       กลุ่มคำสั่ง Selection
เป็นกลุ่มคำสั่งที่ใช้ในการตัดสินใจในการเลือกเงื่อนไขต่าง ๆ ภายในโปรแกรมเพียงเงื่อนไขเดียวมาทำงาน ได้แก่ คำสั่ง if และ Switch

คำสั่ง if เป็นคำสั่งที่ใช้ในการตรวจสอบเงื่อนไขว่าเป็นจริงหรือเท็จ โดยถ้าเป็นจริงจะให้ทำงานใด และถ้าเป็นเท็จจะให้ทำงานใด แบ่งออกเป็น 2 แบบ คือ
     1.แบบเงื่อนไขเดียว (Simple if) มีรูปแบบดังนี้
if(เงื่อนไข){ คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;}
     2.แบบ 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 จะทำการประมวลผลคำสั่งที่บรรจุอยู่ภายในก่อนทีจะทำการเปรียบเทียบเงื่อนไข



คำสั่ง for เป็นคำสั่งที่ใช้ในการตรวจสอบเงื่อนไข พร้อมทั้งกำหนดค่าเริ่มต้นและการเปลี่ยนแปลงของค่าเริ่มต้นไปพร้อม ๆ กัน โดยตราบใดที่เงื่อนไขในคำสั่ง for เป็นจริง ก็จะทำงานตามคำสั่งที่อยู่ภายในต่อไป มีรูปแบบดังนี้



for(ค่าตัวแปรเริ่มต้น; เงื่อนไข;เปลี่ยนแปลงค่าตัวแปร){

คำสั่งเมื่อเงื่อนไขเป็นจริง

}

ตัวอย่าง การใช้การวนซ้ำแบบ for จะทำการประมวลผลคำสั่งต่าง ๆ จนกว่าเงื่อนไขจะเป็นเท็จ



class ForDemo{

public static void main(String args[]){

for (int i = 1; i <= 10; i++)

System.out.println("i = " + i);

}

}



ไม่มีความคิดเห็น:

แสดงความคิดเห็น