SlideShare uma empresa Scribd logo
1 de 60
3.1 ตัว ดำำ เนิน กำรทำงตรรกะ

         ตัว ดำำ เนิน กำรแบบสัม พัน ธ์
  (Relational Operators)            คือตัว
  ดำำเนินกำรที่ทำำหน้ำที่เปรียบเทียบค่ำ
  ระหว่ำงตัวแปรสองตัว หรือนิพจน์สอง
  นิพจน์ โดยจะคืนค่ำเป็นจริงหรือเท็จ
  (Boolean)
Relational Operator                                   ตัว อย่ำ ง

<    Op1<Op2 : คืนคำควำมเปนจริงถำ Op1 น้อยกวำ       a=(1<3); //aจะมีค่ำเป็นจริง
     Op2
<=   Op1<=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 น้อย      a=(5<=7); //a จะมีค่ำเป็นจริง
     กว่ำ Op2 หรือเท่ำกับ Op2

>    Op1>Op2 :คืนค่ำควำมเป็นจริงถ้ำ Op1 มำกกว่ำ     a=(5>7); //a จะมีค่ำเป็นจริง
     Op2
>=   Op1>=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 มำกกว่ำ a=(5>=7); //a จะมีค่ำเป็นจริง
     หรือเท่ำกับ Op2

==   Op1==Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 เท่ำกับ   a=(5==7); // a จะมีค่ำเป็นเท็จ
     Op2                                            เพรำะ 5 ไม่เท่ำกับ 7

!=   Op1!=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 ไม่       a=(5!=7); // a จะมีค่ำเป็นจริง
     เท่ำกับ Op2                                    เพรำะ 5 ไม่เท่ำกับ 7

":   (expression)"a:b :คือค่ำตัว operand a ถ้ำ      a=(3>5)"false:true; //a จะมีค่ำ
     expression เป็นจริง                            เป็นจริง เพรำะผลกำรเปรียเทียบ 3
                                                    มำกกว่ำ 5 เป็นเท็จ เมื่อค่ำทีได้เป็น
                                                                                 ่
                                                    เท็จจะเลือกค่ำ true
ตัวดำำเนินกำรทำงตรรกศำสตร์ (Logical
             Operator)

 ตัวดำำเนินกำรทำงตรรกะ เป็นตัวดำำเนินกำร
เกี่ยวข้องกับนิพจน์ที่สำมำรถบอกค่ำควำมจริง
เป็นจริง(true) หรือเท็จ (false)ได้ หรือชนิด
ข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean
ผลลัพธ์ที่ได้จำกกำรกระทำำจะได้คำคงที่ตรรกะ
                                  ่
เป็น true หรือ false ตัวดำำเนินกำรทำงตรรกะ
ได้แก่เครื่องหมำย !, &&, &, ||, |, ^ มีตัวอย่ำง
กำรใช้งำนดังนี้
เครื่อ งหมำย    ควำมหมำย           ตัว อย่ำ ง               ผลลัพ ธ์
 ดำำ เนิน กำร

        !       NOT (นิเสธ)          !(5 > 3)                   false


                AND (และ)     (x >= 10)&&(x <=        มีค่ำเป็น true เมื่อ
 && หรือ &                    100)                (x >= 10) มีค่ำเป็น true
                                                  และ (x <= 100) มีค่ำเป็น
                                                  true

                OR (หรือ)      (x < 10) || (x >        มีค่ำเป็น true เมื่อ
    || หรือ |                 100)                (x < 10) มีค่ำเป็น true
                                                  หรือ (x > 100) มีค่ำเป็น
                                                  true

                Exclusive      (x > 20) ^ (y >           มีค่ำเป็น false ได้ 2
                OR            20)                 กรณี คือ
       ^                                          กรณีท1    ี่
                                                  เมือ (x >= 10) มีค่ำเป็น
                                                     ่
                                                  true และ (x <= 100) มีค่ำ
                                                  เป็น true
                                                  กรณีท2       ี่
                                                  เมือ (x >= 10) มีค่ำเป็น
                                                       ่
                                                  false และ (x <= 100) มี
                                                  ค่ำเป็น false
ตัวดำำเนินกำรทำงตรรกะแบบต่ำงๆ สำมำรถแสดง
ผลลัพธ์ของนิพจน์ตรรกะตำมค่ำควำมจริงของกำรดำำเนิน
กำรได้ดังตำรำงค่ำควำมจริง (Truth Table) ดังนี้

  ตำรำงค่ำควำมจริงของตัวดำำเนินกำร ! หรือ NOT

      ค่ำ ควำม      ตัว อย่ำ ง   ผลลัพ ธ์
     จริง นิพ จน์

        false       !(false)      False

        true         !(true)      True
ำรำงค่ำควำมจริงของตัวดำำเนินกำร && หรือ AND
   ค่ำ ควำมจริง นิพ จน์   ค่ำ ควำมจริง นิพ จน์      ตัว อย่ำ ง    ผลลัพ ธ์
           ที่1                   ที่2

          false                  false           false && false    False


          false                  true            false && true     False


          true                   false           true && false     False


          True                   true            true && true      True
ตำรำงค่ำควำมจริงของตัวดำำเนินกำร || หรือ OR
     ค่ำ ควำมจริง    ค่ำ ควำมจริง      ผลลัพ ธ์       ผลลัพ ธ์
      นิพ จน์ท ี่1    นิพ จน์ท ี่2



        False           false        false || false    False


        False            true        false || true     True


         True           false        true || false     True


         True            true        true || true      True
ตำรำงค่ำควำมจริงของตัวดำำเนินกำร ^ หรือ XOR

     ค่ำ ควำมจริง    ค่ำ ควำมจริง      ผลลัพ ธ์      ผลลัพ ธ์
      นิพ จน์ท ี่1    นิพ จน์ท ี่2



        False           false        false ^ false    False

        False            true        false ^ true     True

        True            false        true ^ false     True

        True             true        true ^ true      false
ตัว อย่ำ ง กำรใช้ Operator แบบ boolean
class BoolLogic{
public static void main(String
  args[]){
boolean a = true; boolean b =
  false;
boolean c = a | b; boolean d = a &
  b;
boolean e = a ^ b; boolean f = (!a
  & b) | (a & !b);
boolean g = !a;
System.out.println("a = " + a);
  System.out.println("b = " + b);
System.out.println("a | b = " + c);
  System.out.println("a & b = " +
  d);
ตัว ดำำ เนิน กำรระดับ (Bitwise
    Operator)
Operator      รูป แบบ และกำรทำำ งำน                  ตัว อย่ำ ง   ผลลัพ ธ์ท ไ ด้
                                                                            ี่




~          ~ Op : ทำำ complement คือ         a= 0x0005                  -6
           ทำำกำรเปลี่ยนค่ำของบิต 1 เป็น 0
           และเปลี่ยนบิตที่มค่ำ 0 เป็น 1
                            ี



<<, >>     กำรย้ำยบิตไปทำงซ้ำย และทำง        a= 0x0005 << 2             20
           ขวำ                               a= 0x0005 >> 2              1
>>>   กำรย้ำยบิตไปทำงขวำเสมือนไม่มี   a= 0x0005 >>> 2     1
      เครื่องหมำย                     a= 0xFFF5 >>> 2   16381




&     ประมวลผลแบบ Bitwise AND         a= 0x0005 & a =     5
                                      0x0007;

^     ประมวลผลแบบ Bitwise XOR         a= 0x0005 ^ a=      2
                                      0x0007;

|     ประมวลผลแบบ Bitwise OR          a= 0x0005 | a=      7
                                      0x0007;
ลำำดับในกำรประมวลของ Operators ต่ำง ๆ
      ตัว กระทำำ (Operators)       ลำำ ดับ    ประเภทของกำรประมวลผล
() วงเล็บ                            1

++(Increment), --(Decrement), +      2       กำรคำำนวณ
(Unary plus), -(unary minus)                 กำรคำำนวณ
!(Not)                                       Boolean
~(Complement)                                integer
(type_cast)                                  ทุกรูปแบบ

*(Multiply),/(Divide),%(modulus)     3       กำรคำำนวณ
+(Add),-(subtract)                   4       กำรคำำนวณ
<< (Left shift),>>(Right             5       จำำนวนเต็ม
shift),>>>(zero fill)
< (Less than), <==(less than or      6       กำรคำำนวณ object, (เปรียบเทียบ
equal), >(greater than),                     object)
>==(greater than or equal)
Instanceof()
==(Equal),!=(not equal)              7       ข้อมูลพื้นฐำน และ object
&(Bitwise AND)                       8       จำำนวนเต็ม
^ (Bitwise XOR)                      9       จำำนวนเต็ม
ตัว อย่ำ ง กำรคำำนวณโดยใช้
Operator1
class OpEquals{
public static void main (String args[]){
int a =1; int b = 2; int c = 3;
a += 5; b *= 4;
c +=a * b; c %=6;
System.out.println("a = " + a);
  System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
ตัว อย่ำ ง กำรคำำนวณโดยใช้
Operator2
class IncDec{
public static void main(String ars[]){
int a = 1; int b = 2;
int c = ++b; int d = a++;
c++;
System.out.println("a = " + a);
  System.out.println("b = " + b);
System.out.println("c = " + c);
  System.out.println("d = " + d);
}
3.2 คำำ สัง if (if Statement)
            ่
  เลือ กทำำ แบบทำงเดีย ว
          คำำ สัง if then-- > เป็น คำำ สัง เลือ ก
                ่                          ่
ทำำ แบบทำงเดีย ว กำรเลือ กทำำ แบบทำง
เดีย วในภำษำปำสคำลจะใช้ค ำ สัง if –    ำ ่
then ในกำรทำำ งำนของคำำ สัง          ่
คอมพิว เตอร์จ ะตรวจสอบเงือ นไขก่อ น ถ้ำ
                                   ่
เงื่อ นไขเป็น จริง จะทำำ คำำ สัง หรือ สเตตเมน
                               ่
ต์ท ี่ต ำมหลัง then แต่ถ ้ำ เงือ นไขเป็น เท็จ
                                 ่
คอมพิว เตอร์จ ะทำำ คำำ สัง หรือ สเตตเมนต์
                          ่
ต่อ ไป รูป แบบของคำำ สัง เป็น ดัง ต่อ ไปนี้
                            ่
คำำ สัง if then
      ่
  รูป แบบคำำ สัง :if (…เงื่อ นไข --
               ่
  condition……)
then…….

      โดยกำรตรวจสอบเงือ นไขจะเป็น กำรก
                          ่
  ระทำำ แบบบูล ีน ถ้ำ หำกมีก ำรใช้ต ัว ดำำ เนิน
  กำร จะใช้ต ว ดำำ เนิน กำรบูล ีน สำำ หรับ กำร
               ั
  ทำำ งำนของคำำ สัง if –then สำมำรถเขีย น
                    ่
  เป็น ผัง งำนได้ด ัง นี้
ง if then - - > ใน 1 โปรแกรมสำมำรถมี if then ได้ห ลำย
                       Flow Chart :
คำำ สั่ง if then
          ตัว อย่ำ งโปรแกรม :1 - - >โปรแกรมในฝัน


var age:integer;

begin
        If (age >= 18) then
               writeln (‘of age’);
               writeln (‘good luck’);
        Readln;
end.
3.3 คำำ สัง (if – then – else) เป็น คำำ
           ่
 สัง เลือ กทำำ อย่ำ งใดอย่ำ งหนึ่ง
   ่
ในกรณีที่คอมพิวเตอร์ต้องเลือกทำำอย่ำงใด
อย่ำงหนึ่ง โดยตรวจสอบเงื่อนไขที่กำำหนด
จะใช้ คำำสั่ง if – then –else โดยถ้ำ
เงื่อนไขเป็นจริงจะทำำคำำสั่งหลัง then แต่ถ้ำ
เงื่อนไขเป็นเท็จจะทำำคำำสั่งหลัง else โดย
นิพจน์ที่ตำมหลัง if จะเป็นข้อมูลทำงตรรกะ
รูปแบบคำำสังเป็นดังนี้
            ่
คำำ สัง if- then - else
      ่
  รูป แบบคำำ สัง : หลัง statement ที่ 1 ไม่ม ี
                  ่
  semicolon ( ; ) [ข้อ ยกเว้น ]
  if (…เงือ นไข -- condition……) then
              ่
        ..statement 1
else        ..statement 2
โดยกำรตรวจสอบเงื่อ นไขจะเป็น กำรกระทำำ แบบบูล ีน
     คำำ สั่ง if – then – else สำมำรถเขีย นเป็น ผัง งำนได้
งนี้
 คำำ สั่ง if - then - else
     Flow Chart :
คำำ สัง if - then - else
      ่
        ตัว อย่ำ งโปรแกรม :1 - - >โปรแกรมในฝัน

      var scroe:integer;
      begin
             If (score >= 50)Then
                    WRITE (‘You
      pass’)
             ELSE
                   WRITELN (‘You
      fail);
             readln;
      end.
3.4 คำท ี่มสั่งนไข if และ else จำำ นวนมำก คำำ สั่ง
ใช้ใ นกรณี
           ำ ีเ งื่อ if....elseif
elseif เป็น กำรรวมกัน ของคำำ สั่ง if และ else ซึ่ง คำำ สั่ง
เหล่ำ นี้จ ะเรีย งลำำ ดับ กัน อยู่ มีร ูป แบบดัง รูป
กำรใช้ if, if else, if else if ใน Javascript
if ใน Javascript
1.if(condition){   
   2. statement 1;  
    3.statement 2;  
    4. ...  
5.}

  statement 1;statement 2;... condition
  คือเงื่อนไงที่ต้องกำร statement ก็คอคำำสังใน
                                           ื    ่
  โปรแกรม อำจประกอบด้วยหลำยคำำสัง ถ้ำหำก     ่
  มีคำำสังมำกกว่ำหนึ่งให้ใส่วงเล็บปีกกำ{} ครอบ
          ่
  คำำสังทั้งหมดไว้ แต่ถ้ำมีเพียงคำำสั่งเดียวไม่ต้อง
       ่
  ใส่วงเล็บปีกกำก็ได้ ถ้ำหำกไม่มีคำำสั่งใด ๆ ให้
ตัว อย่ำ งกำรใช้    if ใน
    Javascript
• <script language="javascript" type="te
    xt/javascript">  
•   function useif(){  
•       var score = document.getElement
    ById("score").value;  
•       if(score < 50)  
•           document.getElementById("sh
    ow").innerHTML = "Your Grade : F";  
•       if(score >= 50 && score < 60)  
•           document.getElementById("sh
    ow").innerHTML = "Your Grade : D"; 
     
•       document.getElementById("show").innerHT
          
    ML = "Your Grade : b";  
•       if(score >= 80)  
•           document.getElementById("show").inn
    erHTML = "Your Grade : A";  
•       if(isNaN(score))  
•           document.getElementById("show").inn
    erHTML = "Input Incorrect";  
•       if(score == "")  
•           document.getElementById("show").inn
    erHTML = "Input Score";  
•   }  
•   </script>  
•   ใส่
    คะแนน  : <input id="score" type="text" name=
    "score" />  
•   <input type="button" value="ดู
    เกรด " onclick="useif()" />  
•   <span id="show"></span> 
โปรแกรมนี้รับค่ำคะแนนมำจำกกำร id ที่
มีชอว่ำ score นันคือจำกใน text นั่นเอง จำก
    ื่              ่
นั้นเรำใช้ if เพื่อตรวจสอบไปแต่ละเกรด จะเห็น
ว่ำเรำใช้แต่ if ตำมหลัง if มีแค่คำำสั่งเดียว ไม่
ต้องใส่วงเล็บปีกกำครอบก็ได้ โปรแกรมนี้จะ
ตรวจสอบทุก if นั่นคือตรวจสอบว่ำน้อยกว่ำ 50
ต่อไป ก็ มำกกว่ำ 50 และ น้อยกว่ำ 60 หรือไม่
และตรวจสอบไปเรื่อย ๆ ทุก ๆ เกรดถ้ำคะแนน
น้อยกว่ำ 50 แล้วปริ้น F ออกมำ แต่ก็ต้องตรวจ
สอบว่ำเป็นเกรด D C B หรือ A หรือไม่ แล้วก็
ต้องตรวจสอบ isNaN นันคือเป็นตัวเลขหรือไม่
                          ่
และก็ตรวจสอบว่ำได้กรอกข้อมูลเข้ำมำหรือไม่
if else ใน Javascript
•   if(condition){   
•       statement 1;  
•       statement 2;  
•       ...  
•   }  
•   else{  
•       statement 1;  
•       statement 2;  
•       ...  
•   }  statement 1;statement 2;...statement
    1;statement 2;... โปรแกรมจะเข้ำ สู่ก ำร
    ทำำ งำนในบล็อ ก else ได้ ก็ต ่อ เมือ กำรทำำ งำน
                                       ่
    ใน if เป็น เท็จ
ตัว อย่ำ งกำรใช้ if else ใน
Javascript
• <script language="javascript" type="te
    xt/javascript">  
•   function useifelse(){  
•       var score = document.getElement
    ById("score2").value;  
•       if(score < 50) document.getEleme
    ntById("show2").innerHTML = "Your Gr
    ade : F";  
•       else{  
•           if(score < 60) document.getE
    lementById("show2").innerHTML = "You
    r Grade : D";  
•           else{  
•               if(score < 70) document
•                     document.getEl
    ementById("show2").innerHTML = "You
    r Grade : B";  
•                   else{   
•                       if(isNaN(score))
      
•                           document.
    getElementById("show2").innerHTML = 
    "Input Incorrect";  
•                       else document.
    getElementById("show2").innerHTML = 
    "Your Grade : A";  
•                   }  
•               }  
•           }  
โปรแกรมนีเ ราใช้ if else ตอนแรกก็
                   ้
ตรวจสอบว่า น้อ ยกว่า 50 หรือ ไม่ ถ้า ใช่ ก็
ปริ้น F ออกมา แต่ถ ้า ไม่ใ ช่ก ็ไ ปทำา ที่ else
ใน else ก็ไ ปตรวจสอบ if ใน else อีก ที
หรือ ที่เ รีย กกัน ว่า if ซ้อ น if นัน เอง จาก if
                                     ่
ซ้อ น if เราก็ส ามารถลดรูป กลายเป็น
โปรแกรมที่ส ามนัน คือ if else if
                       ่
if else if ใน Javascript
  •   if(condition1){   
  •       statement 1;  
  •       statement 2;  
  •       ...  
  •   }  
  •   else if(condition2){   
  •       statement 1;  
  •       statement 2;  
  •       ...  
  •   }  
  •   else{  
  •       statement 1;  
  •       statement 2;  
  •       ...  
  •   }  statement 1;statement
      2;...statement 1;statement
      2;...statement 1;statement 2;...
• <script language="javascript" type="te
    xt/javascript">  
•   function useifelseif(){  
•       var score = document.getElement
    ById("score3").value;  
•       if(score == "") document.getEleme
    ntById("show3").innerHTML = "Input Sc
    ore";  
•       else if(isNaN(score)) document.get
    ElementById("show3").innerHTML = "In
    put Incorrect";  
•       else if(score < 50) document.getE
    lementById("show3").innerHTML = "You
    r Grade : F";  
•       else if(score < 60) document.getE
    lementById("show3").innerHTML = "You
    r Grade : D";  
โปรแกรมนี้เป็นการใช้ if else if เพื่อตรวจ
สอบน้อยกว่า 50 หรือไม่ถ้าไม่ก็ไปตรวจอันที่
สอง ถ้าน้อยกว่า 60 ก็ทำาการปริ้น D ออกมา
แล้วจบโปรแกรม ต่างจากโปรแกรมแรกที่ต้อง
ตรวจทุก if แม้จะ ปริ้นเกรดออกมาแล้ว และ
เป็นการลดรูปจากโปรแกรมที่สอง จากการใช้ if
ซ้อนกันหลาย ๆ ครั้ง ทำาให้โปรแกรมดูง่ายขึ้น
3.5 คำา สัง การเลือ กทำา แบบ SWITCH
          ่

      คำาสัง switch ใช้เพื่อเลือกทำาคำาสังใดคำาสั่ง
           ่                             ่
 หนึ่งตามต้องการ โดยมีทางเลือกให้ทำาคำาสัง    ่
 หลาย ๆ ทาง ค่าตัวแปรจะทำาหน้าที่ควบคุมคำา
 สั่ง switch คำาสัง switch และคำาสัง if เป็นคำาสั่ง
                  ่                  ่
 เลือกทำาเช่นเดียวกันแต่ต่างกันที่รูปแบบเงื่อนไข
 ต่อไปนี้เป็นรูปแบบของการเลือกทำาแบบ switch
การเลือกทำาแบบ switch มีวิธีเลือกทำาโดย
    การเปรียบเทียบค่าของ switch กับค่าใน
    แต่ละ case ถ้ามีค่าเท่ากัน statement ของ
    case นั้นๆ จะทำางาน และถ้าค่าของ switch
    ไม่เท่ากับค่าใน case ใด ๆ เลย statement
    ของ default ก็จะทำางาน ข้อ สัง เกต
Variable และ Constant ที่ใช้สำาหรับเปรียบ
 เทียบในการเลือกทำาแบบ switch จะต้องมีชนิด
 เป็น int และ char เท่านั้น
ตัว อย่า งโปรแกรม การใช้คำาสังเลือกทำา
                             ่
แบบ switch
• #include <stdio.h>
•   main()
•   {
•   int ch; clrscr();
•   printf(" Menu n");
•   printf("===================n");
•   printf(" 1 :Create Data n");
•   printf(" 2 :Display Data n");
•   printf(" 3 :Append Data n");
•   printf(" 4 :Edit Data n");
•   printf(" 5 :Quit n");
•   printf("===================n");
•   printf("Please select <1, 2, 3, 4, 5 > ==> ");
    scanf("%d", & ch);
•   switch (ch)
•   { case 1: printf("You take choice 1:Create Data
• case 2: printf("You take chaoice 2:Display
    Datan");
•   break;
•   case 3: printf("You take choice 3:Append Data
    n");
•   break;
•   case 4: printf("You take choice 4: Edit Data n");
•   break;
•   case 5: printf("You take choice 5:Quitn");
•   break;
•   default: printf("You take choice the
    other:default");
•   return(0);
•   }
•   }
•   #include <stdio.h>
•   void main(void)
•   {
• case 'x' : printf(" = %f", Fnum1 *
  Fnum2);
• break;
• case '/' :
• case '': printf(" = %f", Fnum1 /
  Fnum2);
• break;
• default : printf("Unknown operator");
• } // end switch
• } // end while
• } // end main
3.6 การควบคุม การทำา ซำ้า ด้ว ยคำา
สั่ง for
     คำาสังที่ใช้วนลูปนั้นก็คอคำาสั่ง for ซึ่งคำาสั่งนี้
          ่                  ื
 เข้าใจได้ดีจะทำาให้ใช้งานมันได้สะดวกสบาย
 ขึ้น คำาสังนีมีเงื่อนไขในการใช้งานอยู่พอสมควร
            ่ ้
คำาสั่ง for นั้นมี 3 ส่วนที่ต้องกำาหนด คือ
1.) ค่าตัวแปรเริ่มต้น ใช้กำาหนดค่าเริ่มต้นของ
 ตัวแปรที่จะใช้ในการควบคุม การวนลูป
2.) เงื่อนไข ใช้กำาหนดเงื่อนไขการวนลูป
3.) เปลี่ยนแปลงค่าตัวแปร ใช้ในการเพิ่มหรือ
 ลดค่าของตัวแปรที่ใช้ในการควบคุม           การวน
 ลูป
ซึง ใช้ล ูป for โดยมีก ารกำา หนดตัว แปร i ไว
   ่
้้เ ป็น 1 เมือ เริ่ม เข้า มาทีล ูป ส่ว นเงื่อ นไขคือ i
              ่                ่
<= 10 คือ เราต้อ งการให้ล ูป นีว นไป 10 ครั้ง
                                        ้
ส่ว น i++ เป็น การเพิม ค่า i ทีล ะ 1 เมือ จบรอบ
                          ่                          ่
        การทำา งานในแต่ล ะรอบนัน เอง               ่
  i = 1, sum = 0 + 1 จบรอบแรก sum = 1
 i = 2, sum = 1 + 2 จบรอบที่ส อง sum = 3
 i = 3, sum = 3 + 3 จบรอบทีส าม sum = 6
                                      ่
  i = 4, sum = 6 + 4 จบรอบทีส ี่ sum = 10  ่
i = 5, sum = 10 + 5 จบรอบทีห า sum = 15   ่ ้
  i = 6, sum = 15 + 6 จบรอบทีห ก sum =           ่
                            21
  i = 7, sum = 21 + 7 จบรอบทีเ จ็ด sum =       ่
                            28
 i = 8, sum = 28 + 8 จบรอบทีแ ปด sum =       ่
                            36
จะเห็นว่าในรอบสุดท้ายคือ รอบที่สิบนั้นค่า
i++ ยังคงทำางานอยู่คือ จะได้ค่า i ค่าสุดท้ายเป็น
11 แต่พอนำาไปเช็คที่เงื่อนไขแล้วทำาให้เงื่อนไข
นั้นผิดเพราะ i <= 10 นั่นเองจึง ทำาให้ออกจา
กลูป นอกจากนี้ยังมีการใช้งานในรูปแบบอื่นอีก
กฎการใช้ค ำา สั่ง for
• 1. ค่า ทีเ พิม ขึน ในแต่ล ะรอบของตัว แปรควบคุม
           ่ ่ ้
  นัน จะเป็น เท่า ไรก็ไ ด้ เช่น
    ้
• for(int x=0 ; x<=100 ; x=x+5)
• 2. ค่า ของตัว แปรควบคุม อาจถูก กำา หนดให้ล ดลง
  ก็ไ ด้ เช่น
• for(int x=100 ; x>0 ; x- -)
• 3. ตัว แปรควบคุม อาจเป็น ชนิด character ได้
  เช่น
• for(char ch =’a’ ; ch<=’z’ ; ch++)
• 4. ตัว แปรควบคุม สามารถมีไ ด้ม ากกว่า 1 ตัว แปร
  เช่น
• for(int x=0,y=0 ; x+y<100 ; x++,y++)
• 5 . ถ้า มีก ารละบางส่ว นหรือ ทุก ส่ว นของ
6. ในคำำ สั่ง for สำมำรถมีค ำำ สัง for
                                 ่
  ซ้อ นอยูภ ำยในได้อ ีก เช่น
          ่
for(int x=1 ; x<=3 ; x++)
  {
  System.out.println(“ x = ”+x);
  for(int y=1 ; x<=5 ; y++)
  System.out.println(“ y = ”+y);
  }
3.7 ลูป WHILE

      คำำ สัง while เป็น คำำ สัง ที่ใ ช้ส ำำ หรับ กำ
            ่                  ่
 รวนลูป ซึ่ง flowchart สำำ หรับ คำำ สั่ง
 while นัน สำมำรถดูไ ด้ต ำมรูป ด้ำ นล่ำ ง
              ้
                จำก flowchart ด้ำ นบน คำำ สัง    ่
 while จะวนลูป โดยกำรเช็ค condition
 ซึ่ง ถ้ำ เป็น จริง จึง จะทำำ กำรวนลูป ใน
 while ดัง นัน คำำ สัง while จะวนกี่ร อบนัน
                  ้      ่                         ้
 ก็ข ึ้น อยู่ก ับ condition แต่เ รำสำมำรถ
 หยุด กำรวนด้ว ยคำำ สัง break่
ตัว อย่ำ งนี้ กำำ หนด i = 0 และ กำำ หนด
num = 50 แล้ว ทำำ กำรเข้ำ สูว งวน while
                                  ่
เมือ เป็น จริง ให้ล ดค่ำ num ลงหนึง ต่อ
    ่                                 ่
รอบ และเพิ่ม ค่ำ i ขึ้น ทีล ะหนึง ต่อ รอบ เมือ
                                    ่        ่
เป็น เท็จ ก็ ปริ้น ค่ำ i กับ num ล่ำ สุด ออก
มำ ผลที่อ อกมำคือ i = 10 และ num = 40
นัน แสดงว่ำ เข้ำ สูว งวน while 10 รอบ
  ่                     ่
ลูป ที่ท ำำ งำนไม่ร ู้จ บ Infinite
Loops loop (บำงครั้ง เรีย กว่ำ endless loop)
• infinite
  เป็น ชิ้น ของคำำ สั่ง ทีข ำดฟัง ก์ช ัน ออก ดัง นัน จะมี
                          ่                        ้
  กำรซำ้ำ ไม่ร ู้จ บ ในโปรแกรมคอมพิว เตอร์ loop
  เป็น อนุก รมของคำำ สั่ง ทีไ ด้ร ับ กำรซำ้ำ อย่ำ งต่อ
                              ่
  เนือ งจนกระทัง ในเงื่อ นไขแน่น อนมำถึง ตำม
       ่            ่
  ปกติ กระบวนกำรแน่น อนได้ร ับ กำรกระทำำ เช่น
  กำรนำำ หน่ว ยของข้อ มูล และเปลี่ย นแปลง หลัง
  จำกนัน บำงเงื่อ นไขได้ร ับ กำรตรวจสอบ เช่น
          ้
  ตัว นำำ มำถึง ตัว เลขกำำ หนด ถ้ำ กำรปรำกฏของ
  เงือ นไขเจำะจงไม่ส ำมำรถมำถึง คำำ สั่ง ต่อ ไปใน
     ่
  อนุก รมบอกโปรแกรมให้ย อ นกลับ ไปทีค ำำ สั่ง แรก
                                  ้             ่
  และซำ้ำ อนุก รม ซึง ตำมปกติจ ะต่อ ไปจนกระทัง
                       ่                               ่
  โปรแกรมหยุด อย่ำ งอัต โนมัต ิ หลัง ช่ว งเวลำ
  แน่น อนหนึง หรือ ระบบปฏิบ ัต ิก ำรหยุด โปรแกรม
               ่
  ด้ว ยคำมผิด พลำด
3.8 ลูป do – while

• do... while มีล ก ษณะกำรใช้ง ำนเหมือ น
                  ั
  while (condition) {} เพีย งแต่ค ำำ สัง
                                       ่
  do.. while นัน ในครั้ง แรกจะทำำ ในบล็อ ก
                ้
  คำำ สัง do.. while ก่อ นค่อ ยทำำ กำรเช็ค
        ่
  เงือ นไขเมือ จบรอบนึง เช่น
     ่        ่
• $a = 3;
• do {
• print $a . ", ";
• $a--;
• } while ($a <3);
เมือ ดูท ี่ต ัว แปร $a จะมีค ำ คือ 3 และใน
        ่                         ่
กำรเช็ค เงือ นไขในคำำ สัง while คือ เช็ค ว่ำ
                ่             ่
ถ้ำ $a < 3 ให้ท ำำ ในบล็อ กคำำ สัง แต่ใ น
                                       ่
กรณีน เ ป็น กำรใช้ค ำำ สัง do... while ดัง นัน
          ี้                ่                   ้
เมื่อ กำำ หนดค่ำ ให้ต ัว แปร $a = 3 ก็จ ะเข้ำ
ทำำ ในบล็อ กคำำ สัง do... while ทัน ที โดย
                       ่
ไม่ไ ด้ท ำำ กำรตรวจสอบเงื่อ นไขก่อ น เมื่อ
ทำำ คำำ สัง ในบล็อ กเสร็จ แล้ว ก็ท ำำ กำรลบค่ำ
             ่
$a ไปหนึ่ง ค่ำ ดัง นัน ณ ตอนนีต ว แปร $a
                          ้           ้ ั
= 2 แล้ว ค่อ ยทำำ กำรเช็ค เงื่อ นไขในคำำ สัง  ่
while ตำมที่ก ำำ หนดมำ
โครงสร้ำ งกำรเขีย นโปรแกรมแบบ
วนซำ้ำ โดยใช้ค ำำ สั่ง do-while
• รูป แบบของกำรเขีย น code สำำ หรับ โปรแกรม
  แบบวนซำ้ำ ทีใ ช้ do-while สำมำรถเขีย นให้อ ยู่
                      ่
  ในรูป ทัว ไปได้ด ง นี้
              ่         ั
• do
  statement
  while ( เงื่อ นไข );
• ตัว อย่ำ งของโครงสร้ำ ง do-while สำมำรถเขีย น
  ได้ด ัง นี้
• sum = 0.0;scanf(“%f”, &x);do { sum += x;
   scanf(“%f”, &x); }while (x > 0.0);โปรแกรม
  ข้ำ งต้น จะทำำ กำรอ่ำ นค่ำ keyboard เมือ User  ่
  พิม พ์ค ่ำ ทีม ค ่ำ มำกกว่ำ ศูน ย์ ก็จ ะทำำ กำรบวกค่ำ
                ่ ี
  เหล่ำ นี้ไ ปทีต ัว แปร sum จนกระทัง User พิม พ์
                    ่                       ่
• เขีย นโปรแกรมที่ใ ช้โ ครงสร้ำ ง do-while โดยโจทย์ก ำำ หนดให้
    ว่ำ ให้โ ปรแกรมสำมำรถรับ ค่ำ ตัว เลขใดๆ (X) และ แสดงผล
    ของตัว เลข ระหว่ำ ง 0 ถึง X ที่ส ำมำรถหำรด้ว ย 4 ลงตัว
•   # includevoid main(){           int number, i; printf("enter
    the numbern");         scanf ("%d", &number);             i = 0;
    do {                   if((i % 4) == 0) printf("%d ", i);
             i++; }          while(i <= number);}
•   ข้อ แตกต่ำ งของ while() กับ do...while()
•   01.<?php
•   02./*
•   03.สมมติใ นกรณีท ี่เ รำต้อ งกำรแสดงสูต รคูณ ตั้ง แต่แ ม่ 12 - 1
•   04.แต่ผ มได้ก ำำ หนดให้ค ่ำ $i = 13
•   05.ซึ่ง เรำจะเห็น ถึง ควำมแตกต่ำ งได้ต รงนี้ค รับ
•   06.*/
•   07. 
•   08.$i = 13;
•   09.echo "While Loop:<br />";
•   10.while(($i >= 0) && ($i <=12)) {
•   11.    $j = 1;
•   12.    while($j <= 12) {
•   13.        echo "$i * $j = " . ($i*$j) . "<br />";
•   14.        $j++;
•   16.    echo "<br />";
•   17.    $i--;
•   18.}
•   19. 
•   20.$i = 13;
•   21.echo "Do While Loop:<br />";
•   22.do {
•   23.    $j = 1;
•   24.    do {
•   25.        echo "$i * $j = " . ($i*$j) . "<br />";
•   26.        $j++;
•   27.    } while($j <= 12);
•   28.    echo "<br />";
•   29.    $i--;  
•   30.} while(($i  >= 0) && ($i <= 12));
•   31.?>
•   จะเห็น ว่ำ ถ้ำ เรำใช้ค ำำ สั่ง do ... while() มัน จะเข้ำ ทำำ งำนในบล็อ ก
    คำำ สั่ง ก่อ นแล้ว ค่อ ยตรวจสอบเงื่อ นไข ซึ่ง ในกรณีน ี้เ รำได้ก ำำ หนดให้
    ค่ำ $i = 13 ดัง นั้น ถ้ำ ใช้ค ำำ สั่ง while มัน จะทำำ กำรตรวจสอบ
    เงื่อ นไขก่อ นว่ำ $i มีค ่ำ น้อ ยกว่ำ หรือ เท่ำ กับ 12 หรือ ไม่ (ไม่เ ท่ำ )
    ดัง นั้น มัน จึง ไม่ท ำำ งำนในบล็อ กคำำ สั่ง แต่ถ ้ำ เรำใช้ค ำำ สั่ง do ...
    while() มัน จะทำำ งำนในบล็อ กก่อ น แล้ว ค่อ ยตรวจสอบเงื่อ นไขที่
3.10 คำำ สั่ง break และ
continue ถ้ำ เรำจำำ เป็น ต้อ งออกจำกลูป โดยไม่ต ้อ งรอ
• break statement
  ให้ค รบรอบ เรำก็ส ำมำรถทำำ ได้โ ดยใช้ break;
• int n;
  string s;
   s = Console.ReadLine();
   while(s != "") {
       n = Int32.Parse(s);
       if(n < 0) {
           break;
       }
      s = Console.ReadLine();
  }
• จริง ๆ แล้ว สำมำรถเขีย นให้ส ั้น ลง เป็น อย่ำ งนี้ก ็ไ ด้
• int n;
  string s;
   while((s = Console.ReadLine()) != "") {
       n = Int32.Parse(s);
       if(n < 0) {
           break;
• continue statement       กำรใช้ break; จะ
  เป็น กำรออกจำกลูป ไปทัน ที แต่ถ ้ำ ต้อ งกำรให้
  มัน แค่ห ยุด กำรวนลูป รอบนั้น และกลับ ไปทำำ งำน
  ใน loop ต่อ เรำก็จ ะใช้ continue;
• int i = 0, n, max, sum = 0;
  max = Int32.Parse(Console.ReadLine());
  while(i < max) {
      n = Int32.Parse(Console.ReadLine());
      if(n < 0) {
          continue;
      }
      sum += n;
      i++;
  }
  Console.WriteLine("average is {0}", sum /
ในกำรเขีย นโปรแกรมสำมำรถนำำ คำำ
  สัง ลูป แบบต่ำ งๆ ให้ม ำทำำ งำนซ้อ นกัน ได้
    ่
  เรีย กว่ำ ลูป แบบซ้อ นลูป
ดัง ตัว อย่ำ งต่อ ไปนี้
Public class Nestedloop1 {Public static
  void main(String[ ] args){for(int i = 1;
  i < = 3; i ++)for(int j = 1; j < = 3; j +
  +)System.out.print(j + “ “);}}
จำกตัว อย่ำ งโปรแกรมลูป แรกจะเป็น
ลูป ของตัว แปร I โดยภำยในลูป จะทำำ ลูป
ของตัว แปร j จำำ นวน 3 ครั้ง ทำำ ให้ก ำร
ทำำ งำน System.out.print (j+“ “) มีก ำร
ทำำ งำนทั้ง หมด 9ครั้ง
โปรแกรมที่ 3.22โปรแกรมต่อ ไปนีจ ะ      ้
เป็น กำรนำำ เครื่อ งหมำย *มำพิม พ์เ ป็น รูป
สำมเหลี่ย มทำงจอภำพ โดยจะ ออกแบบโปรแกรม
ให้ท ำำ งำนแบบลูป ซ้อ นลูป โดยลูป ทีห นึง ให้ท ำำ ลูป
                                       ่ ่
ในหนึง ครั้ง ลูป ทีส องให้ท ำำ ลูป ในสองครั้ง ไปเรื่อ ยๆ
        ่            ่
ในกำรทำำ ลูป แต่ล ะครั้ง นัน จะพิม พ์เ ครื่อ งหมำย *
                            ้
หนึPublic อ ทำำ ลูป ในครบแล้ว จะขึ้น บรรทัด ใหม่
    ง ตัว เมื่ class Star {Public static void
    ่
   main(String[ ] args){for(int i = 1; i <
   = 8; i ++){for(int j = 1; j < = i; j +
   +)System.out.print( “ *
   “);System.out.print();}}}
งานนำเสนอ1

Mais conteúdo relacionado

Mais procurados

Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Wongyos Keardsri
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาjack4212
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Wongyos Keardsri
 
3 ระบบจำนวนจริง
3 ระบบจำนวนจริง3 ระบบจำนวนจริง
3 ระบบจำนวนจริงChwin Robkob
 

Mais procurados (6)

Limit
LimitLimit
Limit
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
 
Test
TestTest
Test
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
3 ระบบจำนวนจริง
3 ระบบจำนวนจริง3 ระบบจำนวนจริง
3 ระบบจำนวนจริง
 

Destaque

It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์Mittapan Chantanyakan
 
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)Mittapan Chantanyakan
 
รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)Mittapan Chantanyakan
 
Why go into Android Apps Development
Why go into Android Apps Development Why go into Android Apps Development
Why go into Android Apps Development Jomar Tigcal
 
It's more fun in Android!
It's more fun in Android!It's more fun in Android!
It's more fun in Android!Jomar Tigcal
 
GDG Philippines in 2012
GDG Philippines in 2012GDG Philippines in 2012
GDG Philippines in 2012Jomar Tigcal
 
fitRewards
fitRewardsfitRewards
fitRewardsplfonpp
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on AndroidJomar Tigcal
 

Destaque (16)

Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์
 
งานย่อย 6
งานย่อย 6งานย่อย 6
งานย่อย 6
 
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
 
อ.ทรงศักดิ์
อ.ทรงศักดิ์อ.ทรงศักดิ์
อ.ทรงศักดิ์
 
รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)
 
คำชมเชย
คำชมเชยคำชมเชย
คำชมเชย
 
งานย่อย 6
งานย่อย 6งานย่อย 6
งานย่อย 6
 
กิจกรรม
กิจกรรมกิจกรรม
กิจกรรม
 
Why go into Android Apps Development
Why go into Android Apps Development Why go into Android Apps Development
Why go into Android Apps Development
 
Android Design
Android DesignAndroid Design
Android Design
 
It's more fun in Android!
It's more fun in Android!It's more fun in Android!
It's more fun in Android!
 
ข าว It news
ข าว It newsข าว It news
ข าว It news
 
GDG Philippines in 2012
GDG Philippines in 2012GDG Philippines in 2012
GDG Philippines in 2012
 
fitRewards
fitRewardsfitRewards
fitRewards
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 

Semelhante a งานนำเสนอ1

งานนำเสนอ1
 งานนำเสนอ1 งานนำเสนอ1
งานนำเสนอ1Ing Gnii
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์เทวัญ ภูพานทอง
 
นิพจน์
นิพจน์นิพจน์
นิพจน์korn27122540
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาJK133
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริงPiyanouch Suwong
 
บทที่2.pdf
บทที่2.pdfบทที่2.pdf
บทที่2.pdfsewahec743
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม BoOm mm
 
ระบบจำนวนเต็ม
ระบบจำนวนเต็มระบบจำนวนเต็ม
ระบบจำนวนเต็ม17112528
 

Semelhante a งานนำเสนอ1 (15)

01 intro php
01 intro php01 intro php
01 intro php
 
Operation
OperationOperation
Operation
 
งานนำเสนอ1
 งานนำเสนอ1 งานนำเสนอ1
งานนำเสนอ1
 
Real content
Real contentReal content
Real content
 
3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์
 
นิพจน์
นิพจน์นิพจน์
นิพจน์
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริง
 
บทที่2.pdf
บทที่2.pdfบทที่2.pdf
บทที่2.pdf
 
03 input math
03 input math03 input math
03 input math
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
60 real
60 real60 real
60 real
 
ระบบจำนวนเต็ม
ระบบจำนวนเต็มระบบจำนวนเต็ม
ระบบจำนวนเต็ม
 

งานนำเสนอ1

  • 1.
  • 2. 3.1 ตัว ดำำ เนิน กำรทำงตรรกะ ตัว ดำำ เนิน กำรแบบสัม พัน ธ์ (Relational Operators) คือตัว ดำำเนินกำรที่ทำำหน้ำที่เปรียบเทียบค่ำ ระหว่ำงตัวแปรสองตัว หรือนิพจน์สอง นิพจน์ โดยจะคืนค่ำเป็นจริงหรือเท็จ (Boolean)
  • 3. Relational Operator ตัว อย่ำ ง < Op1<Op2 : คืนคำควำมเปนจริงถำ Op1 น้อยกวำ a=(1<3); //aจะมีค่ำเป็นจริง Op2 <= Op1<=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 น้อย a=(5<=7); //a จะมีค่ำเป็นจริง กว่ำ Op2 หรือเท่ำกับ Op2 > Op1>Op2 :คืนค่ำควำมเป็นจริงถ้ำ Op1 มำกกว่ำ a=(5>7); //a จะมีค่ำเป็นจริง Op2 >= Op1>=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 มำกกว่ำ a=(5>=7); //a จะมีค่ำเป็นจริง หรือเท่ำกับ Op2 == Op1==Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 เท่ำกับ a=(5==7); // a จะมีค่ำเป็นเท็จ Op2 เพรำะ 5 ไม่เท่ำกับ 7 != Op1!=Op2 : คืนค่ำควำมเป็นจริงถ้ำ Op1 ไม่ a=(5!=7); // a จะมีค่ำเป็นจริง เท่ำกับ Op2 เพรำะ 5 ไม่เท่ำกับ 7 ": (expression)"a:b :คือค่ำตัว operand a ถ้ำ a=(3>5)"false:true; //a จะมีค่ำ expression เป็นจริง เป็นจริง เพรำะผลกำรเปรียเทียบ 3 มำกกว่ำ 5 เป็นเท็จ เมื่อค่ำทีได้เป็น ่ เท็จจะเลือกค่ำ true
  • 4. ตัวดำำเนินกำรทำงตรรกศำสตร์ (Logical Operator) ตัวดำำเนินกำรทำงตรรกะ เป็นตัวดำำเนินกำร เกี่ยวข้องกับนิพจน์ที่สำมำรถบอกค่ำควำมจริง เป็นจริง(true) หรือเท็จ (false)ได้ หรือชนิด ข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean ผลลัพธ์ที่ได้จำกกำรกระทำำจะได้คำคงที่ตรรกะ ่ เป็น true หรือ false ตัวดำำเนินกำรทำงตรรกะ ได้แก่เครื่องหมำย !, &&, &, ||, |, ^ มีตัวอย่ำง กำรใช้งำนดังนี้
  • 5. เครื่อ งหมำย ควำมหมำย ตัว อย่ำ ง ผลลัพ ธ์ ดำำ เนิน กำร ! NOT (นิเสธ) !(5 > 3) false AND (และ) (x >= 10)&&(x <= มีค่ำเป็น true เมื่อ && หรือ & 100) (x >= 10) มีค่ำเป็น true และ (x <= 100) มีค่ำเป็น true OR (หรือ) (x < 10) || (x > มีค่ำเป็น true เมื่อ || หรือ | 100) (x < 10) มีค่ำเป็น true หรือ (x > 100) มีค่ำเป็น true Exclusive (x > 20) ^ (y > มีค่ำเป็น false ได้ 2 OR 20) กรณี คือ ^ กรณีท1 ี่ เมือ (x >= 10) มีค่ำเป็น ่ true และ (x <= 100) มีค่ำ เป็น true กรณีท2 ี่ เมือ (x >= 10) มีค่ำเป็น ่ false และ (x <= 100) มี ค่ำเป็น false
  • 6. ตัวดำำเนินกำรทำงตรรกะแบบต่ำงๆ สำมำรถแสดง ผลลัพธ์ของนิพจน์ตรรกะตำมค่ำควำมจริงของกำรดำำเนิน กำรได้ดังตำรำงค่ำควำมจริง (Truth Table) ดังนี้ ตำรำงค่ำควำมจริงของตัวดำำเนินกำร ! หรือ NOT ค่ำ ควำม ตัว อย่ำ ง ผลลัพ ธ์ จริง นิพ จน์ false !(false) False true !(true) True
  • 7. ำรำงค่ำควำมจริงของตัวดำำเนินกำร && หรือ AND ค่ำ ควำมจริง นิพ จน์ ค่ำ ควำมจริง นิพ จน์ ตัว อย่ำ ง ผลลัพ ธ์ ที่1 ที่2 false false false && false False false true false && true False true false true && false False True true true && true True
  • 8. ตำรำงค่ำควำมจริงของตัวดำำเนินกำร || หรือ OR ค่ำ ควำมจริง ค่ำ ควำมจริง ผลลัพ ธ์ ผลลัพ ธ์ นิพ จน์ท ี่1 นิพ จน์ท ี่2 False false false || false False False true false || true True True false true || false True True true true || true True
  • 9. ตำรำงค่ำควำมจริงของตัวดำำเนินกำร ^ หรือ XOR ค่ำ ควำมจริง ค่ำ ควำมจริง ผลลัพ ธ์ ผลลัพ ธ์ นิพ จน์ท ี่1 นิพ จน์ท ี่2 False false false ^ false False False true false ^ true True True false true ^ false True True true true ^ true false
  • 10. ตัว อย่ำ ง กำรใช้ Operator แบบ boolean class BoolLogic{ public static void main(String args[]){ boolean a = true; boolean b = false; boolean c = a | b; boolean d = a & b; boolean e = a ^ b; boolean f = (!a & b) | (a & !b); boolean g = !a; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("a | b = " + c); System.out.println("a & b = " + d);
  • 11. ตัว ดำำ เนิน กำรระดับ (Bitwise Operator) Operator รูป แบบ และกำรทำำ งำน ตัว อย่ำ ง ผลลัพ ธ์ท ไ ด้ ี่ ~ ~ Op : ทำำ complement คือ a= 0x0005 -6 ทำำกำรเปลี่ยนค่ำของบิต 1 เป็น 0 และเปลี่ยนบิตที่มค่ำ 0 เป็น 1 ี <<, >> กำรย้ำยบิตไปทำงซ้ำย และทำง a= 0x0005 << 2 20 ขวำ a= 0x0005 >> 2 1
  • 12. >>> กำรย้ำยบิตไปทำงขวำเสมือนไม่มี a= 0x0005 >>> 2 1 เครื่องหมำย a= 0xFFF5 >>> 2 16381 & ประมวลผลแบบ Bitwise AND a= 0x0005 & a = 5 0x0007; ^ ประมวลผลแบบ Bitwise XOR a= 0x0005 ^ a= 2 0x0007; | ประมวลผลแบบ Bitwise OR a= 0x0005 | a= 7 0x0007;
  • 13. ลำำดับในกำรประมวลของ Operators ต่ำง ๆ ตัว กระทำำ (Operators) ลำำ ดับ ประเภทของกำรประมวลผล () วงเล็บ 1 ++(Increment), --(Decrement), + 2 กำรคำำนวณ (Unary plus), -(unary minus) กำรคำำนวณ !(Not) Boolean ~(Complement) integer (type_cast) ทุกรูปแบบ *(Multiply),/(Divide),%(modulus) 3 กำรคำำนวณ +(Add),-(subtract) 4 กำรคำำนวณ << (Left shift),>>(Right 5 จำำนวนเต็ม shift),>>>(zero fill) < (Less than), <==(less than or 6 กำรคำำนวณ object, (เปรียบเทียบ equal), >(greater than), object) >==(greater than or equal) Instanceof() ==(Equal),!=(not equal) 7 ข้อมูลพื้นฐำน และ object &(Bitwise AND) 8 จำำนวนเต็ม ^ (Bitwise XOR) 9 จำำนวนเต็ม
  • 14. ตัว อย่ำ ง กำรคำำนวณโดยใช้ Operator1 class OpEquals{ public static void main (String args[]){ int a =1; int b = 2; int c = 3; a += 5; b *= 4; c +=a * b; c %=6; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); } }
  • 15. ตัว อย่ำ ง กำรคำำนวณโดยใช้ Operator2 class IncDec{ public static void main(String ars[]){ int a = 1; int b = 2; int c = ++b; int d = a++; c++; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("d = " + d); }
  • 16. 3.2 คำำ สัง if (if Statement) ่ เลือ กทำำ แบบทำงเดีย ว คำำ สัง if then-- > เป็น คำำ สัง เลือ ก ่ ่ ทำำ แบบทำงเดีย ว กำรเลือ กทำำ แบบทำง เดีย วในภำษำปำสคำลจะใช้ค ำ สัง if – ำ ่ then ในกำรทำำ งำนของคำำ สัง ่ คอมพิว เตอร์จ ะตรวจสอบเงือ นไขก่อ น ถ้ำ ่ เงื่อ นไขเป็น จริง จะทำำ คำำ สัง หรือ สเตตเมน ่ ต์ท ี่ต ำมหลัง then แต่ถ ้ำ เงือ นไขเป็น เท็จ ่ คอมพิว เตอร์จ ะทำำ คำำ สัง หรือ สเตตเมนต์ ่ ต่อ ไป รูป แบบของคำำ สัง เป็น ดัง ต่อ ไปนี้ ่
  • 17. คำำ สัง if then ่ รูป แบบคำำ สัง :if (…เงื่อ นไข -- ่ condition……) then……. โดยกำรตรวจสอบเงือ นไขจะเป็น กำรก ่ ระทำำ แบบบูล ีน ถ้ำ หำกมีก ำรใช้ต ัว ดำำ เนิน กำร จะใช้ต ว ดำำ เนิน กำรบูล ีน สำำ หรับ กำร ั ทำำ งำนของคำำ สัง if –then สำมำรถเขีย น ่ เป็น ผัง งำนได้ด ัง นี้
  • 18. ง if then - - > ใน 1 โปรแกรมสำมำรถมี if then ได้ห ลำย Flow Chart :
  • 19. คำำ สั่ง if then ตัว อย่ำ งโปรแกรม :1 - - >โปรแกรมในฝัน var age:integer; begin If (age >= 18) then writeln (‘of age’); writeln (‘good luck’); Readln; end.
  • 20. 3.3 คำำ สัง (if – then – else) เป็น คำำ ่ สัง เลือ กทำำ อย่ำ งใดอย่ำ งหนึ่ง ่ ในกรณีที่คอมพิวเตอร์ต้องเลือกทำำอย่ำงใด อย่ำงหนึ่ง โดยตรวจสอบเงื่อนไขที่กำำหนด จะใช้ คำำสั่ง if – then –else โดยถ้ำ เงื่อนไขเป็นจริงจะทำำคำำสั่งหลัง then แต่ถ้ำ เงื่อนไขเป็นเท็จจะทำำคำำสั่งหลัง else โดย นิพจน์ที่ตำมหลัง if จะเป็นข้อมูลทำงตรรกะ รูปแบบคำำสังเป็นดังนี้ ่
  • 21. คำำ สัง if- then - else ่ รูป แบบคำำ สัง : หลัง statement ที่ 1 ไม่ม ี ่ semicolon ( ; ) [ข้อ ยกเว้น ] if (…เงือ นไข -- condition……) then ่ ..statement 1 else ..statement 2
  • 22. โดยกำรตรวจสอบเงื่อ นไขจะเป็น กำรกระทำำ แบบบูล ีน คำำ สั่ง if – then – else สำมำรถเขีย นเป็น ผัง งำนได้ งนี้ คำำ สั่ง if - then - else Flow Chart :
  • 23. คำำ สัง if - then - else ่ ตัว อย่ำ งโปรแกรม :1 - - >โปรแกรมในฝัน var scroe:integer; begin If (score >= 50)Then WRITE (‘You pass’) ELSE WRITELN (‘You fail); readln; end.
  • 24. 3.4 คำท ี่มสั่งนไข if และ else จำำ นวนมำก คำำ สั่ง ใช้ใ นกรณี ำ ีเ งื่อ if....elseif elseif เป็น กำรรวมกัน ของคำำ สั่ง if และ else ซึ่ง คำำ สั่ง เหล่ำ นี้จ ะเรีย งลำำ ดับ กัน อยู่ มีร ูป แบบดัง รูป
  • 25. กำรใช้ if, if else, if else if ใน Javascript if ใน Javascript 1.if(condition){       2. statement 1;       3.statement 2;       4. ...   5.}   statement 1;statement 2;... condition คือเงื่อนไงที่ต้องกำร statement ก็คอคำำสังใน ื ่ โปรแกรม อำจประกอบด้วยหลำยคำำสัง ถ้ำหำก ่ มีคำำสังมำกกว่ำหนึ่งให้ใส่วงเล็บปีกกำ{} ครอบ ่ คำำสังทั้งหมดไว้ แต่ถ้ำมีเพียงคำำสั่งเดียวไม่ต้อง ่ ใส่วงเล็บปีกกำก็ได้ ถ้ำหำกไม่มีคำำสั่งใด ๆ ให้
  • 26. ตัว อย่ำ งกำรใช้ if ใน Javascript • <script language="javascript" type="te xt/javascript">   • function useif(){   •     var score = document.getElement ById("score").value;   •     if(score < 50)   •         document.getElementById("sh ow").innerHTML = "Your Grade : F";   •     if(score >= 50 && score < 60)   •         document.getElementById("sh ow").innerHTML = "Your Grade : D";   
  • 27.   document.getElementById("show").innerHT        ML = "Your Grade : b";   •     if(score >= 80)   •         document.getElementById("show").inn erHTML = "Your Grade : A";   •     if(isNaN(score))   •         document.getElementById("show").inn erHTML = "Input Incorrect";   •     if(score == "")   •         document.getElementById("show").inn erHTML = "Input Score";   • }   • </script>   • ใส่ คะแนน  : <input id="score" type="text" name= "score" />   • <input type="button" value="ดู เกรด " onclick="useif()" />   • <span id="show"></span> 
  • 28. โปรแกรมนี้รับค่ำคะแนนมำจำกกำร id ที่ มีชอว่ำ score นันคือจำกใน text นั่นเอง จำก ื่ ่ นั้นเรำใช้ if เพื่อตรวจสอบไปแต่ละเกรด จะเห็น ว่ำเรำใช้แต่ if ตำมหลัง if มีแค่คำำสั่งเดียว ไม่ ต้องใส่วงเล็บปีกกำครอบก็ได้ โปรแกรมนี้จะ ตรวจสอบทุก if นั่นคือตรวจสอบว่ำน้อยกว่ำ 50 ต่อไป ก็ มำกกว่ำ 50 และ น้อยกว่ำ 60 หรือไม่ และตรวจสอบไปเรื่อย ๆ ทุก ๆ เกรดถ้ำคะแนน น้อยกว่ำ 50 แล้วปริ้น F ออกมำ แต่ก็ต้องตรวจ สอบว่ำเป็นเกรด D C B หรือ A หรือไม่ แล้วก็ ต้องตรวจสอบ isNaN นันคือเป็นตัวเลขหรือไม่ ่ และก็ตรวจสอบว่ำได้กรอกข้อมูลเข้ำมำหรือไม่
  • 29. if else ใน Javascript • if(condition){    •     statement 1;   •     statement 2;   •     ...   • }   • else{   •     statement 1;   •     statement 2;   •     ...   • }  statement 1;statement 2;...statement 1;statement 2;... โปรแกรมจะเข้ำ สู่ก ำร ทำำ งำนในบล็อ ก else ได้ ก็ต ่อ เมือ กำรทำำ งำน ่ ใน if เป็น เท็จ
  • 30. ตัว อย่ำ งกำรใช้ if else ใน Javascript • <script language="javascript" type="te xt/javascript">   • function useifelse(){   •     var score = document.getElement ById("score2").value;   •     if(score < 50) document.getEleme ntById("show2").innerHTML = "Your Gr ade : F";   •     else{   •         if(score < 60) document.getE lementById("show2").innerHTML = "You r Grade : D";   •         else{   •             if(score < 70) document
  • 31. •                     document.getEl ementById("show2").innerHTML = "You r Grade : B";   •                 else{    •                     if(isNaN(score))    •                         document. getElementById("show2").innerHTML =  "Input Incorrect";   •                     else document. getElementById("show2").innerHTML =  "Your Grade : A";   •                 }   •             }   •         }  
  • 32. โปรแกรมนีเ ราใช้ if else ตอนแรกก็ ้ ตรวจสอบว่า น้อ ยกว่า 50 หรือ ไม่ ถ้า ใช่ ก็ ปริ้น F ออกมา แต่ถ ้า ไม่ใ ช่ก ็ไ ปทำา ที่ else ใน else ก็ไ ปตรวจสอบ if ใน else อีก ที หรือ ที่เ รีย กกัน ว่า if ซ้อ น if นัน เอง จาก if ่ ซ้อ น if เราก็ส ามารถลดรูป กลายเป็น โปรแกรมที่ส ามนัน คือ if else if ่
  • 33. if else if ใน Javascript • if(condition1){    •     statement 1;   •     statement 2;   •     ...   • }   • else if(condition2){    •     statement 1;   •     statement 2;   •     ...   • }   • else{   •     statement 1;   •     statement 2;   •     ...   • }  statement 1;statement 2;...statement 1;statement 2;...statement 1;statement 2;...
  • 34. • <script language="javascript" type="te xt/javascript">   • function useifelseif(){   •     var score = document.getElement ById("score3").value;   •     if(score == "") document.getEleme ntById("show3").innerHTML = "Input Sc ore";   •     else if(isNaN(score)) document.get ElementById("show3").innerHTML = "In put Incorrect";   •     else if(score < 50) document.getE lementById("show3").innerHTML = "You r Grade : F";   •     else if(score < 60) document.getE lementById("show3").innerHTML = "You r Grade : D";  
  • 35. โปรแกรมนี้เป็นการใช้ if else if เพื่อตรวจ สอบน้อยกว่า 50 หรือไม่ถ้าไม่ก็ไปตรวจอันที่ สอง ถ้าน้อยกว่า 60 ก็ทำาการปริ้น D ออกมา แล้วจบโปรแกรม ต่างจากโปรแกรมแรกที่ต้อง ตรวจทุก if แม้จะ ปริ้นเกรดออกมาแล้ว และ เป็นการลดรูปจากโปรแกรมที่สอง จากการใช้ if ซ้อนกันหลาย ๆ ครั้ง ทำาให้โปรแกรมดูง่ายขึ้น
  • 36. 3.5 คำา สัง การเลือ กทำา แบบ SWITCH ่ คำาสัง switch ใช้เพื่อเลือกทำาคำาสังใดคำาสั่ง ่ ่ หนึ่งตามต้องการ โดยมีทางเลือกให้ทำาคำาสัง ่ หลาย ๆ ทาง ค่าตัวแปรจะทำาหน้าที่ควบคุมคำา สั่ง switch คำาสัง switch และคำาสัง if เป็นคำาสั่ง ่ ่ เลือกทำาเช่นเดียวกันแต่ต่างกันที่รูปแบบเงื่อนไข ต่อไปนี้เป็นรูปแบบของการเลือกทำาแบบ switch
  • 37. การเลือกทำาแบบ switch มีวิธีเลือกทำาโดย การเปรียบเทียบค่าของ switch กับค่าใน แต่ละ case ถ้ามีค่าเท่ากัน statement ของ case นั้นๆ จะทำางาน และถ้าค่าของ switch ไม่เท่ากับค่าใน case ใด ๆ เลย statement ของ default ก็จะทำางาน ข้อ สัง เกต Variable และ Constant ที่ใช้สำาหรับเปรียบ เทียบในการเลือกทำาแบบ switch จะต้องมีชนิด เป็น int และ char เท่านั้น
  • 38. ตัว อย่า งโปรแกรม การใช้คำาสังเลือกทำา ่ แบบ switch • #include <stdio.h> • main() • { • int ch; clrscr(); • printf(" Menu n"); • printf("===================n"); • printf(" 1 :Create Data n"); • printf(" 2 :Display Data n"); • printf(" 3 :Append Data n"); • printf(" 4 :Edit Data n"); • printf(" 5 :Quit n"); • printf("===================n"); • printf("Please select <1, 2, 3, 4, 5 > ==> "); scanf("%d", & ch); • switch (ch) • { case 1: printf("You take choice 1:Create Data
  • 39. • case 2: printf("You take chaoice 2:Display Datan"); • break; • case 3: printf("You take choice 3:Append Data n"); • break; • case 4: printf("You take choice 4: Edit Data n"); • break; • case 5: printf("You take choice 5:Quitn"); • break; • default: printf("You take choice the other:default"); • return(0); • } • } • #include <stdio.h> • void main(void) • {
  • 40. • case 'x' : printf(" = %f", Fnum1 * Fnum2); • break; • case '/' : • case '': printf(" = %f", Fnum1 / Fnum2); • break; • default : printf("Unknown operator"); • } // end switch • } // end while • } // end main
  • 41. 3.6 การควบคุม การทำา ซำ้า ด้ว ยคำา สั่ง for คำาสังที่ใช้วนลูปนั้นก็คอคำาสั่ง for ซึ่งคำาสั่งนี้ ่ ื เข้าใจได้ดีจะทำาให้ใช้งานมันได้สะดวกสบาย ขึ้น คำาสังนีมีเงื่อนไขในการใช้งานอยู่พอสมควร ่ ้
  • 42. คำาสั่ง for นั้นมี 3 ส่วนที่ต้องกำาหนด คือ 1.) ค่าตัวแปรเริ่มต้น ใช้กำาหนดค่าเริ่มต้นของ ตัวแปรที่จะใช้ในการควบคุม การวนลูป 2.) เงื่อนไข ใช้กำาหนดเงื่อนไขการวนลูป 3.) เปลี่ยนแปลงค่าตัวแปร ใช้ในการเพิ่มหรือ ลดค่าของตัวแปรที่ใช้ในการควบคุม การวน ลูป
  • 43. ซึง ใช้ล ูป for โดยมีก ารกำา หนดตัว แปร i ไว ่ ้้เ ป็น 1 เมือ เริ่ม เข้า มาทีล ูป ส่ว นเงื่อ นไขคือ i ่ ่ <= 10 คือ เราต้อ งการให้ล ูป นีว นไป 10 ครั้ง ้ ส่ว น i++ เป็น การเพิม ค่า i ทีล ะ 1 เมือ จบรอบ ่ ่ การทำา งานในแต่ล ะรอบนัน เอง ่ i = 1, sum = 0 + 1 จบรอบแรก sum = 1 i = 2, sum = 1 + 2 จบรอบที่ส อง sum = 3 i = 3, sum = 3 + 3 จบรอบทีส าม sum = 6 ่ i = 4, sum = 6 + 4 จบรอบทีส ี่ sum = 10 ่ i = 5, sum = 10 + 5 จบรอบทีห า sum = 15 ่ ้ i = 6, sum = 15 + 6 จบรอบทีห ก sum = ่ 21 i = 7, sum = 21 + 7 จบรอบทีเ จ็ด sum = ่ 28 i = 8, sum = 28 + 8 จบรอบทีแ ปด sum = ่ 36
  • 44. จะเห็นว่าในรอบสุดท้ายคือ รอบที่สิบนั้นค่า i++ ยังคงทำางานอยู่คือ จะได้ค่า i ค่าสุดท้ายเป็น 11 แต่พอนำาไปเช็คที่เงื่อนไขแล้วทำาให้เงื่อนไข นั้นผิดเพราะ i <= 10 นั่นเองจึง ทำาให้ออกจา กลูป นอกจากนี้ยังมีการใช้งานในรูปแบบอื่นอีก
  • 45. กฎการใช้ค ำา สั่ง for • 1. ค่า ทีเ พิม ขึน ในแต่ล ะรอบของตัว แปรควบคุม ่ ่ ้ นัน จะเป็น เท่า ไรก็ไ ด้ เช่น ้ • for(int x=0 ; x<=100 ; x=x+5) • 2. ค่า ของตัว แปรควบคุม อาจถูก กำา หนดให้ล ดลง ก็ไ ด้ เช่น • for(int x=100 ; x>0 ; x- -) • 3. ตัว แปรควบคุม อาจเป็น ชนิด character ได้ เช่น • for(char ch =’a’ ; ch<=’z’ ; ch++) • 4. ตัว แปรควบคุม สามารถมีไ ด้ม ากกว่า 1 ตัว แปร เช่น • for(int x=0,y=0 ; x+y<100 ; x++,y++) • 5 . ถ้า มีก ารละบางส่ว นหรือ ทุก ส่ว นของ
  • 46. 6. ในคำำ สั่ง for สำมำรถมีค ำำ สัง for ่ ซ้อ นอยูภ ำยในได้อ ีก เช่น ่ for(int x=1 ; x<=3 ; x++) { System.out.println(“ x = ”+x); for(int y=1 ; x<=5 ; y++) System.out.println(“ y = ”+y); }
  • 47. 3.7 ลูป WHILE คำำ สัง while เป็น คำำ สัง ที่ใ ช้ส ำำ หรับ กำ ่ ่ รวนลูป ซึ่ง flowchart สำำ หรับ คำำ สั่ง while นัน สำมำรถดูไ ด้ต ำมรูป ด้ำ นล่ำ ง ้ จำก flowchart ด้ำ นบน คำำ สัง ่ while จะวนลูป โดยกำรเช็ค condition ซึ่ง ถ้ำ เป็น จริง จึง จะทำำ กำรวนลูป ใน while ดัง นัน คำำ สัง while จะวนกี่ร อบนัน ้ ่ ้ ก็ข ึ้น อยู่ก ับ condition แต่เ รำสำมำรถ หยุด กำรวนด้ว ยคำำ สัง break่
  • 48. ตัว อย่ำ งนี้ กำำ หนด i = 0 และ กำำ หนด num = 50 แล้ว ทำำ กำรเข้ำ สูว งวน while ่ เมือ เป็น จริง ให้ล ดค่ำ num ลงหนึง ต่อ ่ ่ รอบ และเพิ่ม ค่ำ i ขึ้น ทีล ะหนึง ต่อ รอบ เมือ ่ ่ เป็น เท็จ ก็ ปริ้น ค่ำ i กับ num ล่ำ สุด ออก มำ ผลที่อ อกมำคือ i = 10 และ num = 40 นัน แสดงว่ำ เข้ำ สูว งวน while 10 รอบ ่ ่
  • 49. ลูป ที่ท ำำ งำนไม่ร ู้จ บ Infinite Loops loop (บำงครั้ง เรีย กว่ำ endless loop) • infinite เป็น ชิ้น ของคำำ สั่ง ทีข ำดฟัง ก์ช ัน ออก ดัง นัน จะมี ่ ้ กำรซำ้ำ ไม่ร ู้จ บ ในโปรแกรมคอมพิว เตอร์ loop เป็น อนุก รมของคำำ สั่ง ทีไ ด้ร ับ กำรซำ้ำ อย่ำ งต่อ ่ เนือ งจนกระทัง ในเงื่อ นไขแน่น อนมำถึง ตำม ่ ่ ปกติ กระบวนกำรแน่น อนได้ร ับ กำรกระทำำ เช่น กำรนำำ หน่ว ยของข้อ มูล และเปลี่ย นแปลง หลัง จำกนัน บำงเงื่อ นไขได้ร ับ กำรตรวจสอบ เช่น ้ ตัว นำำ มำถึง ตัว เลขกำำ หนด ถ้ำ กำรปรำกฏของ เงือ นไขเจำะจงไม่ส ำมำรถมำถึง คำำ สั่ง ต่อ ไปใน ่ อนุก รมบอกโปรแกรมให้ย อ นกลับ ไปทีค ำำ สั่ง แรก ้ ่ และซำ้ำ อนุก รม ซึง ตำมปกติจ ะต่อ ไปจนกระทัง ่ ่ โปรแกรมหยุด อย่ำ งอัต โนมัต ิ หลัง ช่ว งเวลำ แน่น อนหนึง หรือ ระบบปฏิบ ัต ิก ำรหยุด โปรแกรม ่ ด้ว ยคำมผิด พลำด
  • 50. 3.8 ลูป do – while • do... while มีล ก ษณะกำรใช้ง ำนเหมือ น ั while (condition) {} เพีย งแต่ค ำำ สัง ่ do.. while นัน ในครั้ง แรกจะทำำ ในบล็อ ก ้ คำำ สัง do.. while ก่อ นค่อ ยทำำ กำรเช็ค ่ เงือ นไขเมือ จบรอบนึง เช่น ่ ่ • $a = 3; • do { • print $a . ", "; • $a--; • } while ($a <3);
  • 51. เมือ ดูท ี่ต ัว แปร $a จะมีค ำ คือ 3 และใน ่ ่ กำรเช็ค เงือ นไขในคำำ สัง while คือ เช็ค ว่ำ ่ ่ ถ้ำ $a < 3 ให้ท ำำ ในบล็อ กคำำ สัง แต่ใ น ่ กรณีน เ ป็น กำรใช้ค ำำ สัง do... while ดัง นัน ี้ ่ ้ เมื่อ กำำ หนดค่ำ ให้ต ัว แปร $a = 3 ก็จ ะเข้ำ ทำำ ในบล็อ กคำำ สัง do... while ทัน ที โดย ่ ไม่ไ ด้ท ำำ กำรตรวจสอบเงื่อ นไขก่อ น เมื่อ ทำำ คำำ สัง ในบล็อ กเสร็จ แล้ว ก็ท ำำ กำรลบค่ำ ่ $a ไปหนึ่ง ค่ำ ดัง นัน ณ ตอนนีต ว แปร $a ้ ้ ั = 2 แล้ว ค่อ ยทำำ กำรเช็ค เงื่อ นไขในคำำ สัง ่ while ตำมที่ก ำำ หนดมำ
  • 52. โครงสร้ำ งกำรเขีย นโปรแกรมแบบ วนซำ้ำ โดยใช้ค ำำ สั่ง do-while • รูป แบบของกำรเขีย น code สำำ หรับ โปรแกรม แบบวนซำ้ำ ทีใ ช้ do-while สำมำรถเขีย นให้อ ยู่ ่ ในรูป ทัว ไปได้ด ง นี้ ่ ั • do statement while ( เงื่อ นไข ); • ตัว อย่ำ งของโครงสร้ำ ง do-while สำมำรถเขีย น ได้ด ัง นี้ • sum = 0.0;scanf(“%f”, &x);do { sum += x; scanf(“%f”, &x); }while (x > 0.0);โปรแกรม ข้ำ งต้น จะทำำ กำรอ่ำ นค่ำ keyboard เมือ User ่ พิม พ์ค ่ำ ทีม ค ่ำ มำกกว่ำ ศูน ย์ ก็จ ะทำำ กำรบวกค่ำ ่ ี เหล่ำ นี้ไ ปทีต ัว แปร sum จนกระทัง User พิม พ์ ่ ่
  • 53. • เขีย นโปรแกรมที่ใ ช้โ ครงสร้ำ ง do-while โดยโจทย์ก ำำ หนดให้ ว่ำ ให้โ ปรแกรมสำมำรถรับ ค่ำ ตัว เลขใดๆ (X) และ แสดงผล ของตัว เลข ระหว่ำ ง 0 ถึง X ที่ส ำมำรถหำรด้ว ย 4 ลงตัว • # includevoid main(){ int number, i; printf("enter the numbern"); scanf ("%d", &number); i = 0; do { if((i % 4) == 0) printf("%d ", i); i++; } while(i <= number);} • ข้อ แตกต่ำ งของ while() กับ do...while() • 01.<?php • 02./* • 03.สมมติใ นกรณีท ี่เ รำต้อ งกำรแสดงสูต รคูณ ตั้ง แต่แ ม่ 12 - 1 • 04.แต่ผ มได้ก ำำ หนดให้ค ่ำ $i = 13 • 05.ซึ่ง เรำจะเห็น ถึง ควำมแตกต่ำ งได้ต รงนี้ค รับ • 06.*/ • 07.  • 08.$i = 13; • 09.echo "While Loop:<br />"; • 10.while(($i >= 0) && ($i <=12)) { • 11.    $j = 1; • 12.    while($j <= 12) { • 13.        echo "$i * $j = " . ($i*$j) . "<br />"; • 14.        $j++;
  • 54. 16.    echo "<br />"; • 17.    $i--; • 18.} • 19.  • 20.$i = 13; • 21.echo "Do While Loop:<br />"; • 22.do { • 23.    $j = 1; • 24.    do { • 25.        echo "$i * $j = " . ($i*$j) . "<br />"; • 26.        $j++; • 27.    } while($j <= 12); • 28.    echo "<br />"; • 29.    $i--;   • 30.} while(($i  >= 0) && ($i <= 12)); • 31.?> • จะเห็น ว่ำ ถ้ำ เรำใช้ค ำำ สั่ง do ... while() มัน จะเข้ำ ทำำ งำนในบล็อ ก คำำ สั่ง ก่อ นแล้ว ค่อ ยตรวจสอบเงื่อ นไข ซึ่ง ในกรณีน ี้เ รำได้ก ำำ หนดให้ ค่ำ $i = 13 ดัง นั้น ถ้ำ ใช้ค ำำ สั่ง while มัน จะทำำ กำรตรวจสอบ เงื่อ นไขก่อ นว่ำ $i มีค ่ำ น้อ ยกว่ำ หรือ เท่ำ กับ 12 หรือ ไม่ (ไม่เ ท่ำ ) ดัง นั้น มัน จึง ไม่ท ำำ งำนในบล็อ กคำำ สั่ง แต่ถ ้ำ เรำใช้ค ำำ สั่ง do ... while() มัน จะทำำ งำนในบล็อ กก่อ น แล้ว ค่อ ยตรวจสอบเงื่อ นไขที่
  • 55. 3.10 คำำ สั่ง break และ continue ถ้ำ เรำจำำ เป็น ต้อ งออกจำกลูป โดยไม่ต ้อ งรอ • break statement ให้ค รบรอบ เรำก็ส ำมำรถทำำ ได้โ ดยใช้ break; • int n; string s; s = Console.ReadLine(); while(s != "") {     n = Int32.Parse(s);     if(n < 0) {         break;     }     s = Console.ReadLine(); } • จริง ๆ แล้ว สำมำรถเขีย นให้ส ั้น ลง เป็น อย่ำ งนี้ก ็ไ ด้ • int n; string s; while((s = Console.ReadLine()) != "") {     n = Int32.Parse(s);     if(n < 0) {         break;
  • 56. • continue statement กำรใช้ break; จะ เป็น กำรออกจำกลูป ไปทัน ที แต่ถ ้ำ ต้อ งกำรให้ มัน แค่ห ยุด กำรวนลูป รอบนั้น และกลับ ไปทำำ งำน ใน loop ต่อ เรำก็จ ะใช้ continue; • int i = 0, n, max, sum = 0; max = Int32.Parse(Console.ReadLine()); while(i < max) {     n = Int32.Parse(Console.ReadLine());     if(n < 0) {         continue;     }     sum += n;     i++; } Console.WriteLine("average is {0}", sum /
  • 57. ในกำรเขีย นโปรแกรมสำมำรถนำำ คำำ สัง ลูป แบบต่ำ งๆ ให้ม ำทำำ งำนซ้อ นกัน ได้ ่ เรีย กว่ำ ลูป แบบซ้อ นลูป ดัง ตัว อย่ำ งต่อ ไปนี้ Public class Nestedloop1 {Public static void main(String[ ] args){for(int i = 1; i < = 3; i ++)for(int j = 1; j < = 3; j + +)System.out.print(j + “ “);}}
  • 58. จำกตัว อย่ำ งโปรแกรมลูป แรกจะเป็น ลูป ของตัว แปร I โดยภำยในลูป จะทำำ ลูป ของตัว แปร j จำำ นวน 3 ครั้ง ทำำ ให้ก ำร ทำำ งำน System.out.print (j+“ “) มีก ำร ทำำ งำนทั้ง หมด 9ครั้ง
  • 59. โปรแกรมที่ 3.22โปรแกรมต่อ ไปนีจ ะ ้ เป็น กำรนำำ เครื่อ งหมำย *มำพิม พ์เ ป็น รูป สำมเหลี่ย มทำงจอภำพ โดยจะ ออกแบบโปรแกรม ให้ท ำำ งำนแบบลูป ซ้อ นลูป โดยลูป ทีห นึง ให้ท ำำ ลูป ่ ่ ในหนึง ครั้ง ลูป ทีส องให้ท ำำ ลูป ในสองครั้ง ไปเรื่อ ยๆ ่ ่ ในกำรทำำ ลูป แต่ล ะครั้ง นัน จะพิม พ์เ ครื่อ งหมำย * ้ หนึPublic อ ทำำ ลูป ในครบแล้ว จะขึ้น บรรทัด ใหม่ ง ตัว เมื่ class Star {Public static void ่ main(String[ ] args){for(int i = 1; i < = 8; i ++){for(int j = 1; j < = i; j + +)System.out.print( “ * “);System.out.print();}}}