1 / 40

บทที่ 5

บทที่ 5. การเขียนโปรแกรมแบบวนซ้ำ : คำสั่ง while คำสั่ง do….while. โครงสร้างควบคุม ( Control Structure). การควบคุมโปรแกรมให้ทำงานได้ตามต้องการ เราจำเป็นต้องมีความเข้าใจเกี่ยวกับโครงสร้างควบคุมของการเขียนภาษาโปรแกรม ประกอบด้วย ลำดับการทำงาน (Sequence) ทางเลือก , ตัดสินใจ (Decision)

Download Presentation

บทที่ 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 5 การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while

  2. โครงสร้างควบคุม (Control Structure) • การควบคุมโปรแกรมให้ทำงานได้ตามต้องการ เราจำเป็นต้องมีความเข้าใจเกี่ยวกับโครงสร้างควบคุมของการเขียนภาษาโปรแกรม ประกอบด้วย • ลำดับการทำงาน(Sequence) • ทางเลือก,ตัดสินใจ (Decision) • การวนซ้ำ (Iteration)

  3. การเขียนโปรแกรมแบบ วนซ้ำ • คำสั่ง for • คำสั่ง while • คำสั่ง do..while

  4. การใช้ while • ลูป while จะทำการตรวจสอบเงื่อนไขก่อน • หากพบว่าเงื่อนไขเป็นเท็จจะไม่เข้าไปทำ Statement(คำสั่ง) ภายในลูป

  5. คำสั่ง while start กำหนดค่าเริ่มต้น เงื่อนไข เท็จ เปลี่ยนแปลงค่าตัวแปร จริง คำสั่งต่าง ๆ คำสั่งถัดไป End

  6. โจทย์ : ให้แสดงข้อมูล 1,2,3,.. ,100 (คำสั่ง while) start int num=1 num<=100 เท็จ num++ จริง Print num End

  7. คำสั่ง while รูปแบบ กำหนดค่าเริ่มต้น; while(เงื่อนไข){ คำสั่งในลูป ; //สามารถมีได้มากกว่า 1 คำสั่ง คำสั่งเปลี่ยนแปลงค่า; }

  8. ตัวอย่าง ให้แสดงข้อมูล 20,15,10,5,0 int x=20; while(x>0) { System.out.println(x); x=x-5; } System.out.println(“End Program”); 20 15 10 5 End Program

  9. แบบฝึกหัด • ให้แสดงข้อมูล 1-100 • ระหว่างเลข 1 – 100 ให้แสดงเฉพาะเลขคู่ • เขียนโปรแกรมให้รับค่าข้อมูลตัวเลขแล้วแสดงค่าตัวเลขนั้น ทางหน้าจอแต่ถ้าระบุตัวเลขเป็น 999 จึงหยุด

  10. ฝึกเขียนคำสั่ง ในแต่ละ Loop ให้แสดงคำว่า “ Ture ” จากนั้นสอบถาม User ว่าต้องการให้แสดงข้อความอีกหรือไม่ ถ้า User input y หรือ Y ให้แสดงข้อความอีก ถ้า input ข้อมูลอื่นๆให้ ออกจากโปรแกรม

  11. ตัวอย่างแบบ ที่ 1 :

  12. แนะนำคำสั่ง ตรวจสอบการมีค่าเท่ากันของ ข้อความ(String) ตัวอย่าง String x=“yes”; โจทย์ต้องการทราบว่า ข้อความที่เขียน คือข้อความ yes ใช่หรือไม่ รูปแบบ ตัวแปร.equals(ข้อความที่ต้องการ) x.equals(“yes”) ผลที่ได้จากคำสั่งนี้คือ true,false หมายเหตุ : ค่าเริ่มต้นของตัวแปรประเภท String คือ null

  13. ตัวอย่างแบบ ที่ 2 :

  14. โจทย์ 1.ให้รับค่าข้อมูลคะแนน ทางแป้นพิมพ์ทีละคนจากนั้นแสดงผลคะแนนดังกล่าว 2. สอบถามผู้ใช้ว่าต้องการทำงานต่อ หรือไม่(Y/N) ถ้า Y ให้รับค่าข้อมูลคนต่อไป ถ้า N ให้ออกจากโปรแกรม

  15. โปรแกรม

  16. โจทย์ ให้รับค่าข้อมูล ชื่อ และคะแนนสอบทางแป้นพิมพ์ทีละคน ถ้าคะแนน 50 ขึ้นไปคือสอบผ่าน ถ้าน้อยกว่า 50 คือสอบไม่ผ่าน จากนั้นสอบถามผู้ใช้ว่า ต้องการทำงานต่อหรือไม่(Y/N) ถ้า Y ให้รับค่าข้อมูลคนต่อไป ถ้า N ให้ออกจากโปรแกรม กรุณาระบบชื่อ : som กรุณาระบุคะแนน : 77 ผลสอบของ somคือ : Pass ต้องการทำงานต่อหรือไม่ [y/n] : y กรุณาระบบชื่อ : yai กรุณาระบุคะแนน : 30 ผลสอบของ yaiคือ : Fail ต้องการทำงานต่อหรือไม่ [y/n] : n End Progam

  17. ตัวอย่างโปรแกรม

  18. โจทย์สำหรับนักศึกษา ข้อ 1) ให้รับค่าข้อมูล ชื่อ และคะแนนสอบทางแป้นพิมพ์ทีละคน ถ้าคะแนน 50 ขึ้นไปคือสอบผ่าน จากนั้นสอบถามผู้ใช้ว่า ต้องการออกจากโปรแกรมหรือไม่ (Y/N)? ถ้า Y ให้ออกจากโปรแกรม ถ้า Nให้รับค่าข้อมูลคนต่อไป y

  19. โจทย์สำหรับนักศึกษา ข้อ 2 ) เขียนโปรแกรมรับข้อมูลปีเกิด (ระบุเป็นปี พ.ศ.) จากนั้นนำไปคำนวณอายุ แล้วแสดงผล (ถ้าระบุ ปีมากกว่าหรือเท่ากับปี ปัจจุบันให้แสดงข้อความเตือน ว่า “ท่านระบุข้อมูลผิด” หลังจากแสดงผล อายุ ให้สอบถามว่า ท่านต้องการออกจากโปรแกรมหรือไม่ [Y/N] ถ้า y ให้ออกจากโปรแกรม ถ้า n ให้กลับไปสอบถาม ปีเกิดใหม่อีกครั้ง

  20. โจทย์สำหรับนักศึกษา ข้อ 3) จงเขียนโปรแกรมคำนวณผลบวก ลบ คูณ และหาร จากตัวเลข 2 ตัวที่รับเข้าไปจากผู้ใช้แล้วนำตัวเลข 2 ตัวนี้ไปคำนวณผลตามที่ผู้ใช้ต้องการโดยให้ผู้ใช้เลือกจากหัวข้อดังนี้1. Plus (บวก) 2. Subtract (ลบ) 3. Multiply (คูณ) 4. Divide (หาร) 5. End Program (ออกโปรแกรม)

  21. แนะนำคำสั่ง break และ continue break; ถ้าโปรแกรมพบคำสั่งนี้ จะหลุดออกจากลูปการทำงานทัน continue; ถ้าโปรแกรมพบคำสั่งนี้ จะทำให้หยุดการทำงานที่จุดนั้นแล้วย้อนกลับไปเริ่มต้นการทำงานที่ต้นลูปใหม่

  22. break continue คำสั่งต่าง ๆ คำสั่งต่าง ๆ break; continue; คำสั่งต่าง ๆ คำสั่งต่าง ๆ เงื่อน ไข เงื่อน ไข จริง จริง เท็จ เท็จ คำสั่ง นอกลูป คำสั่ง นอกลูป

  23. ตัวอย่าง ทดสอบ break ,continue…. (1) เขียนคำสังแสดงตัวเลข 1  10

  24. ตัวอย่าง ทดสอบ break ,continue….(2) เขียนคำสังแสดงตัวเลข 1 ถึง 10 แต่ไม่แสดงข้อมูล 4 และ 7

  25. ตัวอย่าง ทดสอบ break ,continue….(3) จากตัวเลข 1 ถึง 10 ให้แสดงข้อมูล แต่ถ้าข้อมูลเป็นเลข 7 ให้จบโปรแกรม

  26. ตัวอย่าง ทดสอบ break ,continue

  27. การใช้ do….while • การใช้ do..while นั้น จะใช้เมื่อเราต้องการเข้าสู่การทำงานของลูป (Loop) อย่างน้อย 1 ครั้ง โดยจะวางนิพจน์ทดสอบค่า(เงื่อนไข)ไว้ตอนท้ายของ Loop

  28. คำสั่ง do…while start กำหนดค่าตัวแปรเริ่มต้น คำสั่งต่าง ๆภายในลูป ตัวแปรเปลี่ยนแปลงค่า จริง เท็จ เงื่อนไข End

  29. โจทย์ : ให้แสดงข้อมูล 1,2,3,.. ,100 (คำสั่ง do…while) start int num=1 Print num num++ num<=100 เท็จ จริง End

  30. คำสั่ง do…while รูปแบบ ตัวแปรกำหนดค่าเริ่มต้น do{ คำสั่งในลูป; //สามารถมีได้มากกว่า 1 คำสั่ง คำสั่งเปลี่ยนแปลงค่า; } while(เงื่อนไข);

  31. เปรียบเทียบ

  32. โจทย์ • แสดงข้อมูล 1-100 2. เขียนโปรแกรมให้รับค่าข้อมูลตัวเลขแล้วแสดงค่าตัวเลขนั้น ทางหน้าจอแต่ถ้าระบุตัวเลขเป็น 999 จึงหยุด

  33. โจทย์ จงเขียนโปรแกรมสามารถรับค่าตัวเลขได้เรื่อย ๆไม่จำกัดจำนวนรอบ เมื่อ User ต้องการจบการทำงาน ให้ป้อนเลข 0 จากนั้น แสดงผลรวม (sum) ตัวเลขทั้งหมดที่ป้อนเข้าไป และข้อความ “Bye..Bye..End of Program”

  34. ตัวอย่างโปรแกรม

  35. โจทย์ เขียนโปรแกรมให้สามารถระบุจำนวน ที่ต้องการ input คะแนน จากนั้นนำคะแนนที่ input ไปตัดเกรด 0-49 F 50-59 D 60-69 C 70-79 B 80-100 A เมื่อครบจำนวน ให้แสดงข้อมูล คะแนนและผลเกรดที่ได้

  36. ตัวอย่างโปรแกรม

  37. โจทย์สำหรับนักศึกษา ข้อ 4) ให้รับข้อมูลราคา สินค้า(รับทศนิยมได้) และจำนวนสินค้าที่ซื้อของรายการนั้น โดยสามารถรับราคา และจำนวน ไม่จำกัดจำนวนรอบ จนกระทั้ง ผู้ใช้ ป้อนข้อมูลเป็น 000 จึงสรุป ผลรวมของยอดเงิน ที่ต้องจ่าย

  38. การบ้านเพิ่มเติม ให้นำโจทย์ที่ให้เขียนโปรแกรม นำไปเขียน เป็น Flow Chart

  39. โจทย์ : ให้แสดงข้อมูล 1,2,3,.. ,100 (คำสั่ง do…while) start int num=1 Print num num++ num<=100 เท็จ จริง End

  40. โจทย์ : ให้แสดงข้อมูล 1,2,3,.. ,100 (คำสั่ง while) start int num=1 num<=100 เท็จ num++ จริง Print num End

More Related