SlideShare a Scribd company logo
1 of 30
Download to read offline
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

What's hot

Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptIMC Institute
 
Java 101 Intro to Java Programming - Exercises
Java 101   Intro to Java Programming - ExercisesJava 101   Intro to Java Programming - Exercises
Java 101 Intro to Java Programming - Exercisesagorolabs
 
Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net frameworkAshish Verma
 
2 4โครงสร้างผังงานทำซ้ำ
2 4โครงสร้างผังงานทำซ้ำ2 4โครงสร้างผังงานทำซ้ำ
2 4โครงสร้างผังงานทำซ้ำPannathat Champakul
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arraysArthur Emanuel
 
Basic of Multithreading in JAva
Basic of Multithreading in JAvaBasic of Multithreading in JAva
Basic of Multithreading in JAvasuraj pandey
 
สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)tumetr
 
Operators and Expressions in Java
Operators and Expressions in JavaOperators and Expressions in Java
Operators and Expressions in JavaAbhilash Nair
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao SwingArthur Emanuel
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDEАвтоматизация и Selenium IDE
Автоматизация и Selenium IDEISsoft
 
การเขียนโปรแกรมด้วย Visual basic
การเขียนโปรแกรมด้วย Visual basicการเขียนโปรแกรมด้วย Visual basic
การเขียนโปรแกรมด้วย Visual basicSarun Kitcharoen
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиpogromskaya
 

What's hot (20)

Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
Java 101 Intro to Java Programming - Exercises
Java 101   Intro to Java Programming - ExercisesJava 101   Intro to Java Programming - Exercises
Java 101 Intro to Java Programming - Exercises
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net framework
 
2 4โครงสร้างผังงานทำซ้ำ
2 4โครงสร้างผังงานทำซ้ำ2 4โครงสร้างผังงานทำซ้ำ
2 4โครงสร้างผังงานทำซ้ำ
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Jdbc
JdbcJdbc
Jdbc
 
Basic of Multithreading in JAva
Basic of Multithreading in JAvaBasic of Multithreading in JAva
Basic of Multithreading in JAva
 
Handling I/O in Java
Handling I/O in JavaHandling I/O in Java
Handling I/O in Java
 
สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)
 
Operators and Expressions in Java
Operators and Expressions in JavaOperators and Expressions in Java
Operators and Expressions in Java
 
10. funtions and closures IN SWIFT PROGRAMMING
10. funtions and closures IN SWIFT PROGRAMMING10. funtions and closures IN SWIFT PROGRAMMING
10. funtions and closures IN SWIFT PROGRAMMING
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
пім косп лекц
пім косп лекцпім косп лекц
пім косп лекц
 
Servlets
ServletsServlets
Servlets
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDEАвтоматизация и Selenium IDE
Автоматизация и Selenium IDE
 
การเขียนโปรแกรมด้วย Visual basic
การเขียนโปรแกรมด้วย Visual basicการเขียนโปรแกรมด้วย Visual basic
การเขียนโปรแกรมด้วย Visual basic
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграми
 
Collection framework
Collection frameworkCollection framework
Collection framework
 

Similar to 6.Flow control (14)

3.Expression
3.Expression3.Expression
3.Expression
 
บทที่ 3 คำสั่งควบค
บทที่ 3 คำสั่งควบคบทที่ 3 คำสั่งควบค
บทที่ 3 คำสั่งควบค
 
06 for loops
06 for loops06 for loops
06 for loops
 
งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6
 
Lesson3
Lesson3Lesson3
Lesson3
 
Chapter 05 Loop
Chapter 05 LoopChapter 05 Loop
Chapter 05 Loop
 
Chapter 05 Loop
Chapter 05 LoopChapter 05 Loop
Chapter 05 Loop
 
Know009
Know009Know009
Know009
 
อัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาอัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหา
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentals
 
chapter 3 คำสั่งควบคุม
chapter 3 คำสั่งควบคุมchapter 3 คำสั่งควบคุม
chapter 3 คำสั่งควบคุม
 
Lesson4
Lesson4Lesson4
Lesson4
 
หน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามหน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถาม
 

More from UsableLabs

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

More from UsableLabs (20)

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

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