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

Wrapper class (130240116056)
Wrapper class (130240116056)Wrapper class (130240116056)
Wrapper class (130240116056)Akshay soni
 
Advance OOP concepts in Python
Advance OOP concepts in PythonAdvance OOP concepts in Python
Advance OOP concepts in PythonSujith Kumar
 
Creating Objects in Python
Creating Objects in PythonCreating Objects in Python
Creating Objects in PythonDamian T. Gordon
 
Лекция 1. Основы объектно-ориентированного программирования
Лекция 1. Основы объектно-ориентированного программированияЛекция 1. Основы объектно-ориентированного программирования
Лекция 1. Основы объектно-ориентированного программированияВиталий Емельянов
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP conceptsAhmed Farag
 
Python Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | EdurekaPython Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | EdurekaEdureka!
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 
Spring JDBCTemplate
Spring JDBCTemplateSpring JDBCTemplate
Spring JDBCTemplateGuo Albert
 
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונותג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונותמורן אלקובי
 

What's hot (20)

Lesson 5 php operators
Lesson 5   php operatorsLesson 5   php operators
Lesson 5 php operators
 
Wrapper class (130240116056)
Wrapper class (130240116056)Wrapper class (130240116056)
Wrapper class (130240116056)
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
Methods in C#
Methods in C#Methods in C#
Methods in C#
 
Advance OOP concepts in Python
Advance OOP concepts in PythonAdvance OOP concepts in Python
Advance OOP concepts in Python
 
Solid principles
Solid principlesSolid principles
Solid principles
 
Oop concepts
Oop conceptsOop concepts
Oop concepts
 
Creating Objects in Python
Creating Objects in PythonCreating Objects in Python
Creating Objects in Python
 
Лекция 1. Основы объектно-ориентированного программирования
Лекция 1. Основы объектно-ориентированного программированияЛекция 1. Основы объектно-ориентированного программирования
Лекция 1. Основы объектно-ориентированного программирования
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP concepts
 
Python Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | EdurekaPython Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | Edureka
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 
Generics C#
Generics C#Generics C#
Generics C#
 
Spring JDBCTemplate
Spring JDBCTemplateSpring JDBCTemplate
Spring JDBCTemplate
 
Oop java
Oop javaOop java
Oop java
 
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונותג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
 
C# basics
 C# basics C# basics
C# basics
 
Constructors
ConstructorsConstructors
Constructors
 

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
 
Portal profile
Portal profilePortal profile
Portal profileUsableLabs
 
King's birthday
King's birthdayKing's birthday
King's birthdayUsableLabs
 

More from UsableLabs (20)

Vocabulary for portal
Vocabulary for portalVocabulary for portal
Vocabulary for portal
 
การจัดการความรู้
การจัดการความรู้การจัดการความรู้
การจัดการความรู้
 
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภคการส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
 
อาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูดอาหารและโภชนาการ เรื่อง สารกันบูด
อาหารและโภชนาการ เรื่อง สารกันบูด
 
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
 
เทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษาเทคโนโลยีและนวัตกรรมการศึกษา
เทคโนโลยีและนวัตกรรมการศึกษา
 
Portal profile
Portal profilePortal profile
Portal profile
 
Card sorting
Card sortingCard sorting
Card sorting
 
King's birthday
King's birthdayKing's birthday
King's birthday
 

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