วันอาทิตย์ที่ 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);

}

}



วันจันทร์ที่ 10 ธันวาคม พ.ศ. 2555


2.6 การเรียกใช้ attributes


subject:การเรียกใช้ attribute แบบที่ 1
syntax:ClassName object = new ClassName().attributeName;
example:Person bamboo = new Person().name

subject:การเรียกใช้ attribute แบบที่ 2
syntax:ClassName object = new ClassName();
object.attributeName;
example:Person bamboo = new Person();
bamboo.name = "bamboolabcode"


2.5  การเรียกใช้ Method
                   การเรียกใช้งาน Method ดังในโปรแกรมตัวอย่าง มีขั้นตอนการทำงานดังนี้
                         1. สร้าง Object ของ Class ที่ต้องการเรียกใช้ Method นั้น โดยการใช้คำสั่ง
         <Class_name>  <Object_name> = new <Class_name>(<Class_argument>);
                    ตัวอย่างเช่น 
                         TestMethod  obj = new TestMethod();
                                ในกรณีที่ Method มีการมีนิยามการใช้งานแบบ Static แสดงว่า Method นั้นสามารถเรียกใช้งานได้เลย                      
                                โดยไม่ต้องสร้าง Object
                         2. เรียก Method ที่มีอยู่ใน Class นั้นผ่านตัวแปร Object โดยใช้เครื่องหมายจุด(.) ในการเข้าถึง Method            
                             นั้นๆ
                         ตัวอย่างเช่น
                   obj.input();   เรียก Method ที่ชื่อ input ผ่าน Object ที่ชื่อ obj  
                   output(score,grade); เรียก Method ที่ชื่อ output โดยไม่ต้องสร้าง Object เพราะMethod นี้เป็นแบบ static
                         3. ส่งข้อมูลนำเข้าให้กับ Method นั้น ดังตัวอย่างเช่น
     grade=process(score); ใน Method ที่ชื่อ process มีการรับจำนวนเต็มเข้ามา
                             ถ้าไม่มีข้อมูลนำเข้า เช่น obj.input(); ต้องเขียนชื่อ Method ตามด้วยวงเล็บ
                         4. รับข้อมูลที่ส่งกลับมาจาก Method นั้น ดังตัวอย่างเช่น
                grade=process(score); ใน Method ที่ชื่อ process มีการส่งค่ากลับเป็นตัวอักษร ดังนั้นต้องตัวแปรที่ชื่อ            
                grade มารับข้อมูลที่เป็นตัวอักษร ถ้าไม่มีข้อมูลส่งกลับมา หรือ void  ใน Method เช่น  
                output(score,grade);  ไม่มีการส่งค่ากลับก็ไม่ต้องมีตัวแปรมารับค่าแต่อย่างใด


2.4 การประกาศ object

        <Class_name>  <Object_name> = new <Class_name>(<Class_argument>)  
เมื่อ            Class_name คือ ชื่อของ Class
Object_name คือชื่อของตัวแปร Object
Class_argument คือตัวแปรในการรับเข้ามาในการสร้าง Class ขึ้นอยู่กับ Constructor ของ Class นั้นๆ

                ตัวอย่างเช่น
BufferedReader  input = new BufferedReader(new InputStreamReader(System.in));

            อนุญาตให้มีหลาย attributes สำหรับอีลีเมนต์ที่กำหนดในการประกาศ attribute list
          ตัวอย่างเช่น สำหรับอีลีเมนต์ book

         <!ATTLIST book
          isbn ID #REQUIRED
         type (fiction|nonfiction) fiction >


2.2 การประกาศ Method
                   int maxFunction(int x1, int x2){
   int max = 0;
   if(x1 > x2)
max = x1;
else
max = x2;
   return(max);
}
       คำอธิบาย
                   ชื่อ Method คือ maxFunction   รับข้อมูลเข้ามาเป็นจำนวนเต็ม 2 ตัว คือ int x1 และ int x2 และส่งค่ากลับเป็น     
                int
                   หน้าที่ของ Method นี้ คือทำการตรวจค่าของ x1 และ x2 ว่าตัวใดมีค่ามากที่สุด จากนั้นกำหนดค่าให้ตัวแปร    
                max เพื่อส่งค่ากลับaccessibility ของ Method
accessibility เป็นการกำหนดชนิดของการเรียกใช้ ใช้กำหนดขอบเขตการใช้งานของตัวแปร, Method หรือ Class 
แบ่งออกเป็น
   1. static  ใช้นิยามตัวแปรและ Method ที่ต้องการให้มีค่าคงที่ สามารถนำไปใช้ได้กับทุกๆส่วนของ Class โดยค่า
นั้นไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ


"ไวยากรณ์ภาษาจาวา"



2.1 การประกาศ class

                   ตัวอย่าง


            class calculator

           {



             public $i;


            function add($i1,$i2)
           {
             $result=$i1+$i2;
           return $result;
           }

           }

                     การประกาศคลาสจะเริ่มด้วยคำว่า class แล้วตามด้วยชื่อคลาสในตัวอย่างคือ calculator
            ภายในคลาสจะมีตัวแปร มีฟังก์ชัน การประกาศฟังก์ชันของคลาสก็เหมือนกับการประกาศฟังก์ชัน              
            ในภาษา php