SlideShare a Scribd company logo
1 of 65
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       จำำนวนเต็ม
| (Bitwise OR)                      10       จำำนวนเต็ม
s&& (AND)                           11       Boolean
ตัว อย่ำ ง กำรคำำนวณโดยใช้
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 พิม พ์
           ้        ่                       ่
3.9 ลูป ซ้อ นลูป (Nested Loops)
       ในการเขีย นโปรแกรมสามารถนำา คำา สั่ง ลูป แบบ
  ต่า งๆ ให้ม าทำา งานซ้อ นกัน ได้เ รีย กว่า ลูป แบบซ้อ นลูป
     ดัง ตัว อย่า งต่อ ไปนี้  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 ครั้ง   ทำา ให้ก าร
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();}}}
3.11 ข้อ ควรระวัง ในการใช้
   คำา สั่ง ทำา ซำ้า
   ในการเขียนโปรแกรมทำาลูปมักจะมีข้อผิดพลาดเกิดขึ้น
   เสมอ โดยโปรแกรมทีเขียนขึ้นจะคอมไพล์ผ่าน แต่จะ
                              ่
   ทำางานไม่ถูกต้องตามทีต้องการ ข้อผิดพลาดนี้เรียก
                                ่
   ว่า logic error             //outcome product
   will equal 3*57*……*99
                long product = 1;
                 int I = 3;
                while (i < = 100) {
                                product  = product * i;
                                i = i+2;
                }
                                     
   System.out.print(product);           
พิจารณาส่วนของโปรแกรมต่อไปนี้ ซึ่งส่วนประกอบของ
จากโปรแกรมทีเ ขีย นขึ้น จะเห็น ว่า จะประกาศ
                      ่
   ตัว แปร  product เป็น ประเภท  long ถ้า หาก
   ประกาศตัว แปรนีเ ป็น ประเภท  int จะให้ค ำา ตอบ
                          ้
   ไม่ถ ูก ต้อ ง เนือ งจากค่า ผลลัพ ธ์ข อง  product ที่
                    ่
   ได้จ ะมีค ่า มากกว่า จำา นวนข้อ มูล ทีต ัว แปร
                                           ่
   แบบ  integer จะเก็บ ได้ และถ้า หากมีก าร
   ประกาศตัว แปรนีเ ป็น                 long
                            ้
   product
ก็จ ะเกิด ข้อ ผิด พลาดขึ้น เช่น กัน เนื่อ งจากไม่ไ ด้
   กำา หนดค่า เริ่ม ต้น ให้ก ับ ตัว แปรนี้ ซึ่ง จะทำา ให้ไ ม่
   สามารถคำา นวณ product = product * I; ได้
จากโปรแกรมนีค ่า ตัว เลขค่า สูง สุด จะเป็น 99 แต่ผ ู้
                        ้
   เขีย นโปรแกรมมีโ อกาสเข้า ใจผิด โดยเขีย นใน
   ลัก ษณะนีไ ด้้
การเขีย นโปรแกรมในลัก ษณะตัว อย่า งด้า น
บนนีจ ะเป็น การคำา นวณค่า 3*5*7....97 เนือ งจาก
      ้                                         ่
ในลูป สุด ท้า ยค่า ของ  i มีค ่า เป็น 99 ซึ่ง ทำา ให้
เงือ นไขของ  while เป็น เท็จ ซึง เป็น ข้อ ผิด พลาด
   ่                                 ่
ในขณะตรวจสอบเงื่อ นไข ข้อ ผิด พลาดลัก ษณะนี้
เรีย กอีก อย่า งหนึง ว่า  off-by-one-error
                   ่
จากปัญ หาเดีย วกัน นี้ ถ้า หากเขีย นการ
ตรวจสอบเงื่อ นไขผิด พลาดก็อ าจทำา ให้โ ปร
แกรมทำา ลูป ซำ้า ไม่ร ู้จ บได้ อย่า งเช่น การ
เขีย นคำา สัง ดัง ต่อ ไปนี้
            ่
  long product = 1;
  int I =3;
  While(i! = 100){                 // ทำาซำ้าถ้าหาก i ไม่เท่ากับ 100
            product = product * i;
            i = i+2;
  }




       จากส่วนของโปรแกรมด้านบนจะปรับค่า I ก่อน
ทีจะทำาการคูณ ซึ่งจะทำาให้เป็นการหาค่าของ
  ่
5*7*9.......*99*101
จากการเขีย นโปรแกรมทีผ ่า นมาได้ศ ก ษาวิธ ี
                                   ่              ึ
การรับ ข้อ มูล ทางคีย บ อร์ด มาบ้า งแล้ว โดยใช้
                          ์
เมธอดในคลาส  Scanner ในภาษาจาวายัง
สามารถรับ ค่า ทางคีย ์บ อร์ด ได้อ ีก หลายวิธ ี อีก วิธ ี
หนึง ทีน ย มใช้ก น ได้แ ก่ การใช้
     ่ ่ ิ          ั
เมธอด  read เป็น เมธอดทีอ ยูใ น  ่ ่
คลาส  System การใช้ง านจะต้อ งเรีย กใช้แ พ็ก
เกจ  java.io และรับ ข้อ มูล ได้จ ากการเขีย นคำา
สัง เป็น  System.in.read การใช้เ มธอดนีจ ะรับ
  ่                                                 ้
ข้อ มูล เป็น ตัว อัก ษร 1 ตัว จากนั้น ข้อ มูล ทีร ับ เข้า
                                                ่
มาจะถูก แปลงไปเป็น รหัส  ASCII โดยอัต โนมัต ิ
การเรีย กใช้ค ำา สั่ง นีจ ะมีก ารตรวจจับ ความผิด
                        ้
พลาดในการรับ ข้อ มูล ด้ว ย ซึ่ง ผู้เ ขีย นโปรแกรม
จะต้อ งใช้ค ำา สั่ง  throws IOException ต่อ จาก
สมาชิก
1.นายธาวิต ตั้งวิริยะ เลขที่ 8
2.นางสาวนุจรี บุญชูเชิด เลขที่ 25
3.นางสาวกนิษฐา เนตรสว่าง เลขที่ 28
4.นางสาวทิพย์วรรณ เชื้อวงษ์ เลขที่ 29
5.นางสาวมนัสนันต์ ทับทิมใส เลขที่ 31
6.นางสาวสุกานดา เฉินจุณวรรณ เลขที่ 32
จบการนำาเสนอ
 !!

More Related Content

What's hot

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
 
ประวัติ แคลคูลัส
ประวัติ แคลคูลัสประวัติ แคลคูลัส
ประวัติ แคลคูลัส
Ploy Purr
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
jack4212
 
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
Wongyos Keardsri
 
อนุพันธ์
อนุพันธ์อนุพันธ์
อนุพันธ์
krurutsamee
 
บทที่1 จำนวนจริง
บทที่1 จำนวนจริงบทที่1 จำนวนจริง
บทที่1 จำนวนจริง
Bombam Waranya
 
Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)
Wongyos Keardsri
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
Wongyos Keardsri
 

What's hot (20)

Limit
LimitLimit
Limit
 
การหาค่าจำนวนแบบซ้ำซ้อน
การหาค่าจำนวนแบบซ้ำซ้อนการหาค่าจำนวนแบบซ้ำซ้อน
การหาค่าจำนวนแบบซ้ำซ้อน
 
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชันค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
 
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)
 
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
 
3 ระบบจำนวนจริง
3 ระบบจำนวนจริง3 ระบบจำนวนจริง
3 ระบบจำนวนจริง
 
ประวัติ แคลคูลัส
ประวัติ แคลคูลัสประวัติ แคลคูลัส
ประวัติ แคลคูลัส
 
Chapter 4 ลิมิตของฟังก์ชัน
Chapter 4 ลิมิตของฟังก์ชันChapter 4 ลิมิตของฟังก์ชัน
Chapter 4 ลิมิตของฟังก์ชัน
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
 
Java-Answer Chapter 05-06
Java-Answer Chapter 05-06Java-Answer Chapter 05-06
Java-Answer Chapter 05-06
 
Test
TestTest
Test
 
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
 
ระบบจำนวนจริง
ระบบจำนวนจริงระบบจำนวนจริง
ระบบจำนวนจริง
 
อนุพันธ์
อนุพันธ์อนุพันธ์
อนุพันธ์
 
บทที่1 จำนวนจริง
บทที่1 จำนวนจริงบทที่1 จำนวนจริง
บทที่1 จำนวนจริง
 
Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)
 
Operation
OperationOperation
Operation
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)
 

Similar to งานนำเสนอ1อ ทรงศักดิ์

งานนำเสนอ1
 งานนำเสนอ1 งานนำเสนอ1
งานนำเสนอ1
Ing Gnii
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริง
Piyanouch Suwong
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์
เทวัญ ภูพานทอง
 
บทที่2.pdf
บทที่2.pdfบทที่2.pdf
บทที่2.pdf
sewahec743
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
Little Tukta Lita
 
สรุปสูตรคณิตศาสตร์
สรุปสูตรคณิตศาสตร์สรุปสูตรคณิตศาสตร์
สรุปสูตรคณิตศาสตร์
wisita42
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
JK133
 

Similar to งานนำเสนอ1อ ทรงศักดิ์ (15)

งานนำเสนอ1
 งานนำเสนอ1 งานนำเสนอ1
งานนำเสนอ1
 
Real content
Real contentReal content
Real content
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริง
 
3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์
 
นิพจน์
นิพจน์นิพจน์
นิพจน์
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์
 
60 real
60 real60 real
60 real
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
บทที่2.pdf
บทที่2.pdfบทที่2.pdf
บทที่2.pdf
 
Realnumbers
RealnumbersRealnumbers
Realnumbers
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
 
ระบบจำนวนเต็ม
ระบบจำนวนเต็มระบบจำนวนเต็ม
ระบบจำนวนเต็ม
 
สรุปสูตรคณิตศาสตร์
สรุปสูตรคณิตศาสตร์สรุปสูตรคณิตศาสตร์
สรุปสูตรคณิตศาสตร์
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 

More from Aeew Autaporn

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
Aeew Autaporn
 
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้วลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
Aeew Autaporn
 
เกมส์จับคู่
เกมส์จับคู่เกมส์จับคู่
เกมส์จับคู่
Aeew Autaporn
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
Aeew Autaporn
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
Aeew Autaporn
 
โรงเรียนในฝัน
โรงเรียนในฝันโรงเรียนในฝัน
โรงเรียนในฝัน
Aeew Autaporn
 
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
Aeew Autaporn
 
ข่าวไอที
ข่าวไอทีข่าวไอที
ข่าวไอที
Aeew Autaporn
 

More from Aeew Autaporn (12)

ย่อย6
ย่อย6ย่อย6
ย่อย6
 
ย่อย1
ย่อย1ย่อย1
ย่อย1
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้วลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
ลือ!!! Apple เริ่มผลิต iPhone 5S แล้ว
 
ลือ
ลือลือ
ลือ
 
เกมส์จับคู่
เกมส์จับคู่เกมส์จับคู่
เกมส์จับคู่
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
 
1
11
1
 
โรงเรียนในฝัน
โรงเรียนในฝันโรงเรียนในฝัน
โรงเรียนในฝัน
 
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
 
ข่าวไอที
ข่าวไอทีข่าวไอที
ข่าวไอที
 

งานนำเสนอ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 จำำนวนเต็ม | (Bitwise OR) 10 จำำนวนเต็ม s&& (AND) 11 Boolean
  • 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. 3.9 ลูป ซ้อ นลูป (Nested Loops) ในการเขีย นโปรแกรมสามารถนำา คำา สั่ง ลูป แบบ ต่า งๆ ให้ม าทำา งานซ้อ นกัน ได้เ รีย กว่า ลูป แบบซ้อ นลูป ดัง ตัว อย่า งต่อ ไปนี้  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 ครั้ง   ทำา ให้ก าร
  • 54. 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;
  • 55. • 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 /
  • 56. ในการเขีย นโปรแกรมสามารถนำา คำา สัง ลูป แบบต่า งๆ ให้ม าทำา งานซ้อ นกัน ได้ ่ เรีย กว่า ลูป แบบซ้อ นลูป ดัง ตัว อย่า งต่อ ไปนี้ 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 + “ “);}}
  • 57. จากตัว อย่า งโปรแกรมลูป แรกจะเป็น ลูป ของตัว แปร I โดยภายในลูป จะทำา ลูป ของตัว แปร j จำา นวน 3 ครั้ง ทำา ให้ก าร ทำา งาน System.out.print (j+“ “) มีก าร ทำา งานทั้ง หมด 9ครั้ง
  • 58. โปรแกรมที่ 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();}}}
  • 59. 3.11 ข้อ ควรระวัง ในการใช้ คำา สั่ง ทำา ซำ้า ในการเขียนโปรแกรมทำาลูปมักจะมีข้อผิดพลาดเกิดขึ้น เสมอ โดยโปรแกรมทีเขียนขึ้นจะคอมไพล์ผ่าน แต่จะ ่ ทำางานไม่ถูกต้องตามทีต้องการ ข้อผิดพลาดนี้เรียก ่ ว่า logic error             //outcome product will equal 3*57*……*99                 long product = 1;                  int I = 3;                 while (i < = 100) {                                 product  = product * i;                                 i = i+2;                 }                                       System.out.print(product);            พิจารณาส่วนของโปรแกรมต่อไปนี้ ซึ่งส่วนประกอบของ
  • 60. จากโปรแกรมทีเ ขีย นขึ้น จะเห็น ว่า จะประกาศ ่ ตัว แปร  product เป็น ประเภท  long ถ้า หาก ประกาศตัว แปรนีเ ป็น ประเภท  int จะให้ค ำา ตอบ ้ ไม่ถ ูก ต้อ ง เนือ งจากค่า ผลลัพ ธ์ข อง  product ที่ ่ ได้จ ะมีค ่า มากกว่า จำา นวนข้อ มูล ทีต ัว แปร ่ แบบ  integer จะเก็บ ได้ และถ้า หากมีก าร ประกาศตัว แปรนีเ ป็น                 long ้ product ก็จ ะเกิด ข้อ ผิด พลาดขึ้น เช่น กัน เนื่อ งจากไม่ไ ด้ กำา หนดค่า เริ่ม ต้น ให้ก ับ ตัว แปรนี้ ซึ่ง จะทำา ให้ไ ม่ สามารถคำา นวณ product = product * I; ได้ จากโปรแกรมนีค ่า ตัว เลขค่า สูง สุด จะเป็น 99 แต่ผ ู้ ้ เขีย นโปรแกรมมีโ อกาสเข้า ใจผิด โดยเขีย นใน ลัก ษณะนีไ ด้้
  • 61. การเขีย นโปรแกรมในลัก ษณะตัว อย่า งด้า น บนนีจ ะเป็น การคำา นวณค่า 3*5*7....97 เนือ งจาก ้ ่ ในลูป สุด ท้า ยค่า ของ  i มีค ่า เป็น 99 ซึ่ง ทำา ให้ เงือ นไขของ  while เป็น เท็จ ซึง เป็น ข้อ ผิด พลาด ่ ่ ในขณะตรวจสอบเงื่อ นไข ข้อ ผิด พลาดลัก ษณะนี้ เรีย กอีก อย่า งหนึง ว่า  off-by-one-error ่
  • 62. จากปัญ หาเดีย วกัน นี้ ถ้า หากเขีย นการ ตรวจสอบเงื่อ นไขผิด พลาดก็อ าจทำา ให้โ ปร แกรมทำา ลูป ซำ้า ไม่ร ู้จ บได้ อย่า งเช่น การ เขีย นคำา สัง ดัง ต่อ ไปนี้ ่ long product = 1; int I =3; While(i! = 100){ // ทำาซำ้าถ้าหาก i ไม่เท่ากับ 100 product = product * i; i = i+2; } จากส่วนของโปรแกรมด้านบนจะปรับค่า I ก่อน ทีจะทำาการคูณ ซึ่งจะทำาให้เป็นการหาค่าของ ่ 5*7*9.......*99*101
  • 63. จากการเขีย นโปรแกรมทีผ ่า นมาได้ศ ก ษาวิธ ี ่ ึ การรับ ข้อ มูล ทางคีย บ อร์ด มาบ้า งแล้ว โดยใช้ ์ เมธอดในคลาส  Scanner ในภาษาจาวายัง สามารถรับ ค่า ทางคีย ์บ อร์ด ได้อ ีก หลายวิธ ี อีก วิธ ี หนึง ทีน ย มใช้ก น ได้แ ก่ การใช้ ่ ่ ิ ั เมธอด  read เป็น เมธอดทีอ ยูใ น ่ ่ คลาส  System การใช้ง านจะต้อ งเรีย กใช้แ พ็ก เกจ  java.io และรับ ข้อ มูล ได้จ ากการเขีย นคำา สัง เป็น  System.in.read การใช้เ มธอดนีจ ะรับ ่ ้ ข้อ มูล เป็น ตัว อัก ษร 1 ตัว จากนั้น ข้อ มูล ทีร ับ เข้า ่ มาจะถูก แปลงไปเป็น รหัส  ASCII โดยอัต โนมัต ิ การเรีย กใช้ค ำา สั่ง นีจ ะมีก ารตรวจจับ ความผิด ้ พลาดในการรับ ข้อ มูล ด้ว ย ซึ่ง ผู้เ ขีย นโปรแกรม จะต้อ งใช้ค ำา สั่ง  throws IOException ต่อ จาก
  • 64. สมาชิก 1.นายธาวิต ตั้งวิริยะ เลขที่ 8 2.นางสาวนุจรี บุญชูเชิด เลขที่ 25 3.นางสาวกนิษฐา เนตรสว่าง เลขที่ 28 4.นางสาวทิพย์วรรณ เชื้อวงษ์ เลขที่ 29 5.นางสาวมนัสนันต์ ทับทิมใส เลขที่ 31 6.นางสาวสุกานดา เฉินจุณวรรณ เลขที่ 32