SlideShare a Scribd company logo
976-140 Object-Oriented Programming
   344-202 Introduction to OOP

      การโปรแกรมเชิงวัตถุ

         6. Flow Control


                Faculty of Technology and Environment
           Prince of Songkla University, Phuket Campus
                                              2/2551
Contents
    Flow Control
       If, if-else, nested-if
       switch-case

       while

       do-while

       for-next, Nested-for

       Break

       continue




Object-Oriented Programming 2/2551   2
Flow control
  ในการทางานของโปรแกรมโดยทั่วไปจะ                      Start
   ดาเนินงานตามลาดับคาสั่ง
  ส่วนใหญ่แล้วต้องมีการตรวจสอบเงื่อนไขหรือ             Input

   ตัดสินใจเพื่อดาเนินการ
  Flow control คือการควบคุมการทางานของ                Process

   โปรแกรมให้ทางานตามเงื่อนไขทีกาหนดไว้
                               ่
       คาสั่งเลือกกระทา ได้แก่ if-else, switch-case   Output
       คาสั่งกระทาซ้า ได้แก่ do-while, while, for


                                                        End


Object-Oriented Programming 2/2551                               3
Flow control
    การตัดสินใจ จะดูจากเงื่อนไขในการควบคุม โดยใช้ boolean operator
     ตรวจสอบว่ามีค่าความจริงเป็นจริงหรือเท็จก่อน เพื่อตัดสินใจว่าจะทา
     หรือไม่




Object-Oriented Programming 2/2551                                      4
If
      ใช้สาหรับเลือกทิศทางการทางาน ตามเงื่อนไข true หรือ false
          รูปแบบที่ 1 : if


                                                                 true
                                                     Condition          Action 1


                                                  false
       เช่น




Object-Oriented Programming 2/2551                                             5
If-else
       รูปแบบที่     2 : if…else…
                                           false               true
                                                   Condition



                                     Action 1                         Action 2




      เช่น




Object-Oriented Programming 2/2551                                       6
If-else
   ถ้าใน if หรือ else มีคาสั่งเดียว ไม่ต้องใส่วงเล็บปีกกาก็ได้




Object-Oriented Programming 2/2551                                7
Try this!



  5
  0
  Exception in thread "main" java.lang.ArithmeticException: / by zero
      at TestDemo.main(TestDemo.java:12)


  Edit this program to handle with input a=5, b=0


                             5
                             0
                             Error: divided by zero!

Object-Oriented Programming 2/2551                                      8
Nested-If
     รูปแบบที่      3 : if ซ้อน if




    Note: If จะคู่กับ else ที่อยู่ใกล้ทสุด
                                       ี่

Object-Oriented Programming 2/2551           9
Try this
    เขียนโปรแกรมรับคะแนนจากคีย์บอร์ด และตัดพิมพ์เกรดตามเงื่อนไข
     ต่อไปนี้โดยใช้ nested-if
       ถ้า คะแนน 80 ขึ้นไป ให้พิมพ์ Good
       ถ้า คะแนน 50 ขึ้นไปและ น้อยกว่า 80 ให้พิมพ์ Pass

       ถ้า คะแนนน้อยกว่า 50 ให้เกรด Fail




Object-Oriented Programming 2/2551                                 10
Switch-case
    ใช้สาหรับเลือกทิศทางการทางาน ตามค่าของตัวแปรที่ตรวจสอบ
    ชนิดข้อมูลของตัวแปรที่ตรวจสอบเป็น char, byte, short, int เท่านั้น
    แต่ละ case ต้องเป็น literal หรือค่าคงที่ที่สัมพันธ์กันกับชนิดข้อมูลนั้น




Object-Oriented Programming 2/2551                                             11
Switch-case
    Case default อาจมีหรือไม่ก็ได้ และอยู่ตาแหน่งใดก็ได้ใน switch
    แต่ละ case จะทางานจนกว่าจะพบคาสั่ง break และหยุดตรวจสอบ case
     ที่เหลือ
    ตัวอย่าง กาหนดอัตราดอกเบี้ยเงินฝากประจาจากจานวนปีที่ฝาก

       ประจา 3 ปี ดอกเบี้ย 5%
       ประจา 5 ปี ดอกเบี้ย 10%
       ประจา 10 ปี ดอกเบี้ย 15%




Object-Oriented Programming 2/2551                                   12
Switch-case
    ตัวอย่าง การที่หลาย case ให้ทางานคาสั่งเดียวกัน




                                                   ถ้า g = ‘B’
                                                ผลลัพธ์ที่ได้คืออะไร




Object-Oriented Programming 2/2551                                     13
Switch-case
    หาก case นั้นไม่มีคาสั่ง break จะทาคาสั่งใน case ถัดไป
         จงแสดงผลลัพธ์เมื่อ g = ‘C’




Object-Oriented Programming 2/2551                            14
While
    ใช้สาหรับการทางานซา ๆ โดยตรวจสอบเงื่อนไขก่อนว่าเป็นจริงจึงจะทา และทา
     จนกว่าเงื่อนไขนั้นจะเป็นเท็จ

                                                                Condition       false




                                                                   true
    ส่วนประกอบหลักของการทาซา
       กาหนดค่าเริ่มต้นที่จะใช้ตรวจสอบ
                                                                  Statements



       ทดสอบเงื่อนไข และทาเมื่อเงื่อนไขจริง

       ในลูปต้องมีการเปลี่ยนค่าเพื่อทาให้เงื่อนไขเป็นเท็จเพื่อสินสุดการวนลูป



Object-Oriented Programming 2/2551                                                      15
While
 Example ต้องการพิมพ์ ************* จานวน 10 บรรทัด

    กาหนด i=1 เพื่อใช้นับรอบบรรทัด
    ตรวจสอบเงื่อนไขก่อนจะทาในลูป
    ถ้ายังทาไม่ครบ 10 รอบก็จะพิมพ์ ****
    เปลี่ยนค่า i เพื่อใช้ตรวจสอบว่า
     จะทารอบถัดไปหรือไม่




Object-Oriented Programming 2/2551                    16
Try this!
                                        int x = 5;
                                        int sum = 0;
                                        i = 0;
                                        while(i <= x)
                                        {
                                          sum = sum + x;
                                          i++;
                                        }
                                      System.out.println(sum);


             int i = 10;
             while(i > 0)
             {
                System.out.print(i + " ");
                i--;
             }


Object-Oriented Programming 2/2551                               17
Do-while
    Do-while จะทางานอย่างน้อย 1 ครั้งก่อนที่จะทาการตรวจสอบเงื่อนไข
    หากเงื่อนไขเป็นจริงจะทาในลูปถัดไป และจะทาจนกว่าเงื่อนไขเป็นเท็จ

                                                     Statements


                                              true


                                                     Condition    false
 Example
      int count = 0;
      do {
         System.out.println( count );
         count++ ;
      } while ( count < 10 );

Object-Oriented Programming 2/2551                                        18
Try this!
    int y = 10;
    do
    {
       System.out.println(y);
       y += 10;
    } while(y <= 100);




    จงเขียนโปรแกรมแสดงเลขสุ่มที่มีค่า 1-10 จานวน 10 ตัว
    โดยใช้ while loop



Object-Oriented Programming 2/2551                        19
For
   ใช้สาหรับการทางานซา ๆ โดยจานวนรอบจะตรวจสอบตัวแปรที่
    กาหนดเป็นตัวนับรอบ
                                                                  Initial
   ตัวนับรอบจะต้องถูกกาหนดค่าเริ่มต้นให้
   แต่ละรอบจะมีการปรับค่าตัวนับรอบ และตรวจสอบว่าตัวนับรอบตรง
    ตามเงื่อนไขหรือไม่                              Change         Test       false


        หากเงื่อนไขเป็นจริง จะทาในลูป
                                                                   true
        หากเงื่อนไขเป็นเท็จ จะออกจากลูป
                                                                Statements




Object-Oriented Programming 2/2551                                           20
For
 Example
      for (int i = 0; i < 10; i=i+2) {
        System.out.println(i);
      }


      for (int i = 0; i < 5; i++) {
        System.out.println(i++);
      }




Object-Oriented Programming 2/2551       21
Nested For
    การใช้ For ซ้อน For จะมีการวนรอบโดยแต่ละรอบของ for ด้านนอก จะมี
     การทางาน for ด้านใน




       For-loop นอก ทางาน 5 รอบ โดยเพิ่มค่า i รอบละ 1
       แต่ละรอบของ i จะทางานใน for-loop ใน โดยค่า j เพิ่มรอบละ 1 และทาจานวน
        รอบตามเงื่อนไข
Object-Oriented Programming 2/2551                                      22
Nested For




Object-Oriented Programming 2/2551   23
การตรวจสอบเงื่อนไขด้วยเครื่องหมาย ==
    ถ้าเปรียบเทียบ primitive data type ด้วยเครื่องหมาย == จะเป็นการ
     เปรียบเทียบว่าค่าเท่ากันหรือไม่




Object-Oriented Programming 2/2551                                     24
การตรวจสอบเงื่อนไขด้วยเครื่องหมาย ==
    ถ้าเปรียบเทียบค่าของ object ซึ่งเป็น reference data type ด้วย
     เครื่องหมาย == จะมีความหมายว่าเป็น object เดียวกันหรือไม่




Object-Oriented Programming 2/2551                                   25
การเปรียบเทียบ String
    String เป็น reference data type
         การเปรียบเทียบด้วย == หมายถึงการเปรียบเทียบว่าเป็น object เดียวกันหรือไม่
  หากต้องการเปรียบเทียบค่า ใช้เมธอด boolean equals(String s)
  รูปแบบ         stringObject1.equals(stringObject2)




              http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Reference.html
Object-Oriented Programming 2/2551                                                  26
การเปรียบเทียบ String
    What is the result?




Object-Oriented Programming 2/2551   27
Keyword break
       ในลูป while, do-while, for ถ้าในลูปมีคาสั่ง break อยู่ หากโปรแกรม
        ทางานไปเจอ break จะหลุดออกจากลูปทันที




Object-Oriented Programming 2/2551                                     28
Keyword continue
       ในลูป while, do-while, for หากโปรแกรมทางานไปเจอ continue จะ
        ทาในลูปในรอบถัดไปทันที




Object-Oriented Programming 2/2551                               29
จด note แบบอัจฉริยะ




Object-Oriented Programming 2/2551   30

More Related Content

PDF
4.Oop
PPTX
Methods and constructors in java
PDF
Notions de base de JavaScript
PPTX
Java Lambda Expressions.pptx
PDF
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PDF
Java 8 features
PPTX
Dynamic memory allocation
4.Oop
Methods and constructors in java
Notions de base de JavaScript
Java Lambda Expressions.pptx
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
Java 8 features
Dynamic memory allocation

What's hot (20)

PPT
Reflection in java
ODP
OOP java
PPTX
Exception Handling in C#
PPTX
Operators in java presentation
PPT
Super keyword.23
PPTX
Lambda Expressions in Java 8
PDF
Object oriented programming With C#
PPT
JDBC – Java Database Connectivity
PPT
Iterator Design Pattern
PPT
JAVA Collections frame work ppt
PDF
Java Collections | Collections Framework in Java | Java Tutorial For Beginner...
PDF
Java-Chapter 12 Classes and Objects
PPTX
This keyword in java
PPT
Java Basics
PDF
Java IO
PDF
Java threading
PPT
String Handling
PDF
Java 8 Lambda Expressions
PPTX
java 8 new features
Reflection in java
OOP java
Exception Handling in C#
Operators in java presentation
Super keyword.23
Lambda Expressions in Java 8
Object oriented programming With C#
JDBC – Java Database Connectivity
Iterator Design Pattern
JAVA Collections frame work ppt
Java Collections | Collections Framework in Java | Java Tutorial For Beginner...
Java-Chapter 12 Classes and Objects
This keyword in java
Java Basics
Java IO
Java threading
String Handling
Java 8 Lambda Expressions
java 8 new features
Ad

Similar to 6.Flow control (14)

PDF
3.Expression
PDF
บทที่ 3 คำสั่งควบค
PPT
06 for loops
PDF
งานทำ Blog บทที่ 6
PDF
Know009
PDF
อัลกอริทึมและการวิเคราะห์ปัญหา
PDF
คำสั่งควบคุมโปรแกรม
PDF
2.Java fundamentals
PDF
chapter 3 คำสั่งควบคุม
PDF
หน่วยที่ 4 การสร้างแบบสอบถาม
3.Expression
บทที่ 3 คำสั่งควบค
06 for loops
งานทำ Blog บทที่ 6
Know009
อัลกอริทึมและการวิเคราะห์ปัญหา
คำสั่งควบคุมโปรแกรม
2.Java fundamentals
chapter 3 คำสั่งควบคุม
หน่วยที่ 4 การสร้างแบบสอบถาม
Ad

More from UsableLabs (20)

PDF
Vocabulary for portal
PDF
การจัดการความรู้
PDF
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
PDF
อาหารและโภชนาการ เรื่อง สารกันบูด
PDF
8.Inheritance
PDF
5.Methods cs
PDF
1.Introduction to java
PDF
ส่งยิ้ม ส่งรัก รับปีใหม่
PDF
30 web (blog2book)
PDF
ภาพสวยๆ จากคนรักมวลเมฆ
PDF
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
PDF
สร้างเว็บไซต์โดยใช้หลัก Usability
PDF
แนะนำวิธีการจดทะเบียนโดเมน
PDF
Health
PDF
Money
PDF
correct_Portal manual
PDF
PDF
PDF
เทคโนโลยีและนวัตกรรมการศึกษา
PDF
Portal profile
Vocabulary for portal
การจัดการความรู้
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
อาหารและโภชนาการ เรื่อง สารกันบูด
8.Inheritance
5.Methods cs
1.Introduction to java
ส่งยิ้ม ส่งรัก รับปีใหม่
30 web (blog2book)
ภาพสวยๆ จากคนรักมวลเมฆ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
สร้างเว็บไซต์โดยใช้หลัก Usability
แนะนำวิธีการจดทะเบียนโดเมน
Health
Money
correct_Portal manual
เทคโนโลยีและนวัตกรรมการศึกษา
Portal profile

6.Flow control

  • 1. 976-140 Object-Oriented Programming 344-202 Introduction to OOP การโปรแกรมเชิงวัตถุ 6. Flow Control Faculty of Technology and Environment Prince of Songkla University, Phuket Campus 2/2551
  • 2. Contents  Flow Control  If, if-else, nested-if  switch-case  while  do-while  for-next, Nested-for  Break  continue Object-Oriented Programming 2/2551 2
  • 3. Flow control  ในการทางานของโปรแกรมโดยทั่วไปจะ Start ดาเนินงานตามลาดับคาสั่ง  ส่วนใหญ่แล้วต้องมีการตรวจสอบเงื่อนไขหรือ Input ตัดสินใจเพื่อดาเนินการ  Flow control คือการควบคุมการทางานของ Process โปรแกรมให้ทางานตามเงื่อนไขทีกาหนดไว้ ่  คาสั่งเลือกกระทา ได้แก่ if-else, switch-case Output  คาสั่งกระทาซ้า ได้แก่ do-while, while, for End Object-Oriented Programming 2/2551 3
  • 4. Flow control  การตัดสินใจ จะดูจากเงื่อนไขในการควบคุม โดยใช้ boolean operator ตรวจสอบว่ามีค่าความจริงเป็นจริงหรือเท็จก่อน เพื่อตัดสินใจว่าจะทา หรือไม่ Object-Oriented Programming 2/2551 4
  • 5. If  ใช้สาหรับเลือกทิศทางการทางาน ตามเงื่อนไข true หรือ false  รูปแบบที่ 1 : if true Condition Action 1 false เช่น Object-Oriented Programming 2/2551 5
  • 6. If-else  รูปแบบที่ 2 : if…else… false true Condition Action 1 Action 2 เช่น Object-Oriented Programming 2/2551 6
  • 7. If-else  ถ้าใน if หรือ else มีคาสั่งเดียว ไม่ต้องใส่วงเล็บปีกกาก็ได้ Object-Oriented Programming 2/2551 7
  • 8. Try this! 5 0 Exception in thread "main" java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:12) Edit this program to handle with input a=5, b=0 5 0 Error: divided by zero! Object-Oriented Programming 2/2551 8
  • 9. Nested-If  รูปแบบที่ 3 : if ซ้อน if Note: If จะคู่กับ else ที่อยู่ใกล้ทสุด ี่ Object-Oriented Programming 2/2551 9
  • 10. Try this  เขียนโปรแกรมรับคะแนนจากคีย์บอร์ด และตัดพิมพ์เกรดตามเงื่อนไข ต่อไปนี้โดยใช้ nested-if  ถ้า คะแนน 80 ขึ้นไป ให้พิมพ์ Good  ถ้า คะแนน 50 ขึ้นไปและ น้อยกว่า 80 ให้พิมพ์ Pass  ถ้า คะแนนน้อยกว่า 50 ให้เกรด Fail Object-Oriented Programming 2/2551 10
  • 11. Switch-case  ใช้สาหรับเลือกทิศทางการทางาน ตามค่าของตัวแปรที่ตรวจสอบ  ชนิดข้อมูลของตัวแปรที่ตรวจสอบเป็น char, byte, short, int เท่านั้น  แต่ละ case ต้องเป็น literal หรือค่าคงที่ที่สัมพันธ์กันกับชนิดข้อมูลนั้น Object-Oriented Programming 2/2551 11
  • 12. Switch-case  Case default อาจมีหรือไม่ก็ได้ และอยู่ตาแหน่งใดก็ได้ใน switch  แต่ละ case จะทางานจนกว่าจะพบคาสั่ง break และหยุดตรวจสอบ case ที่เหลือ  ตัวอย่าง กาหนดอัตราดอกเบี้ยเงินฝากประจาจากจานวนปีที่ฝาก ประจา 3 ปี ดอกเบี้ย 5% ประจา 5 ปี ดอกเบี้ย 10% ประจา 10 ปี ดอกเบี้ย 15% Object-Oriented Programming 2/2551 12
  • 13. Switch-case  ตัวอย่าง การที่หลาย case ให้ทางานคาสั่งเดียวกัน ถ้า g = ‘B’ ผลลัพธ์ที่ได้คืออะไร Object-Oriented Programming 2/2551 13
  • 14. Switch-case  หาก case นั้นไม่มีคาสั่ง break จะทาคาสั่งใน case ถัดไป  จงแสดงผลลัพธ์เมื่อ g = ‘C’ Object-Oriented Programming 2/2551 14
  • 15. While  ใช้สาหรับการทางานซา ๆ โดยตรวจสอบเงื่อนไขก่อนว่าเป็นจริงจึงจะทา และทา จนกว่าเงื่อนไขนั้นจะเป็นเท็จ Condition false true  ส่วนประกอบหลักของการทาซา  กาหนดค่าเริ่มต้นที่จะใช้ตรวจสอบ Statements  ทดสอบเงื่อนไข และทาเมื่อเงื่อนไขจริง  ในลูปต้องมีการเปลี่ยนค่าเพื่อทาให้เงื่อนไขเป็นเท็จเพื่อสินสุดการวนลูป Object-Oriented Programming 2/2551 15
  • 16. While Example ต้องการพิมพ์ ************* จานวน 10 บรรทัด  กาหนด i=1 เพื่อใช้นับรอบบรรทัด  ตรวจสอบเงื่อนไขก่อนจะทาในลูป  ถ้ายังทาไม่ครบ 10 รอบก็จะพิมพ์ ****  เปลี่ยนค่า i เพื่อใช้ตรวจสอบว่า จะทารอบถัดไปหรือไม่ Object-Oriented Programming 2/2551 16
  • 17. Try this! int x = 5; int sum = 0; i = 0; while(i <= x) { sum = sum + x; i++; } System.out.println(sum); int i = 10; while(i > 0) { System.out.print(i + " "); i--; } Object-Oriented Programming 2/2551 17
  • 18. Do-while  Do-while จะทางานอย่างน้อย 1 ครั้งก่อนที่จะทาการตรวจสอบเงื่อนไข  หากเงื่อนไขเป็นจริงจะทาในลูปถัดไป และจะทาจนกว่าเงื่อนไขเป็นเท็จ Statements true Condition false Example int count = 0; do { System.out.println( count ); count++ ; } while ( count < 10 ); Object-Oriented Programming 2/2551 18
  • 19. Try this! int y = 10; do { System.out.println(y); y += 10; } while(y <= 100); จงเขียนโปรแกรมแสดงเลขสุ่มที่มีค่า 1-10 จานวน 10 ตัว โดยใช้ while loop Object-Oriented Programming 2/2551 19
  • 20. For  ใช้สาหรับการทางานซา ๆ โดยจานวนรอบจะตรวจสอบตัวแปรที่ กาหนดเป็นตัวนับรอบ Initial  ตัวนับรอบจะต้องถูกกาหนดค่าเริ่มต้นให้  แต่ละรอบจะมีการปรับค่าตัวนับรอบ และตรวจสอบว่าตัวนับรอบตรง ตามเงื่อนไขหรือไม่ Change Test false  หากเงื่อนไขเป็นจริง จะทาในลูป true  หากเงื่อนไขเป็นเท็จ จะออกจากลูป Statements Object-Oriented Programming 2/2551 20
  • 21. For Example for (int i = 0; i < 10; i=i+2) { System.out.println(i); } for (int i = 0; i < 5; i++) { System.out.println(i++); } Object-Oriented Programming 2/2551 21
  • 22. Nested For  การใช้ For ซ้อน For จะมีการวนรอบโดยแต่ละรอบของ for ด้านนอก จะมี การทางาน for ด้านใน  For-loop นอก ทางาน 5 รอบ โดยเพิ่มค่า i รอบละ 1  แต่ละรอบของ i จะทางานใน for-loop ใน โดยค่า j เพิ่มรอบละ 1 และทาจานวน รอบตามเงื่อนไข Object-Oriented Programming 2/2551 22
  • 24. การตรวจสอบเงื่อนไขด้วยเครื่องหมาย ==  ถ้าเปรียบเทียบ primitive data type ด้วยเครื่องหมาย == จะเป็นการ เปรียบเทียบว่าค่าเท่ากันหรือไม่ Object-Oriented Programming 2/2551 24
  • 25. การตรวจสอบเงื่อนไขด้วยเครื่องหมาย ==  ถ้าเปรียบเทียบค่าของ object ซึ่งเป็น reference data type ด้วย เครื่องหมาย == จะมีความหมายว่าเป็น object เดียวกันหรือไม่ Object-Oriented Programming 2/2551 25
  • 26. การเปรียบเทียบ String  String เป็น reference data type  การเปรียบเทียบด้วย == หมายถึงการเปรียบเทียบว่าเป็น object เดียวกันหรือไม่  หากต้องการเปรียบเทียบค่า ใช้เมธอด boolean equals(String s)  รูปแบบ stringObject1.equals(stringObject2) http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Reference.html Object-Oriented Programming 2/2551 26
  • 27. การเปรียบเทียบ String  What is the result? Object-Oriented Programming 2/2551 27
  • 28. Keyword break  ในลูป while, do-while, for ถ้าในลูปมีคาสั่ง break อยู่ หากโปรแกรม ทางานไปเจอ break จะหลุดออกจากลูปทันที Object-Oriented Programming 2/2551 28
  • 29. Keyword continue  ในลูป while, do-while, for หากโปรแกรมทางานไปเจอ continue จะ ทาในลูปในรอบถัดไปทันที Object-Oriented Programming 2/2551 29