สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

Tutorial JAVA

01 install Eclipse 02 intro to programming Eclipse 03 condition 04.loop 05.array 05 2 array cont 06 01 function 06 02 function cont 07 object 08 string 09 constructor 10 01 oop 10 02 oop2 11 exception 12 reading file 13 thread 14 generic 15 01 GUI 15 02 GUI2 15 03.GUI3 16 using WindowBuilder 17 event 18 database management system 19 ER diagram 20 Relational 21 Xampp 22 JDBC 23 MVC 24 SQL

คำสั่งลูป(Loop)หรือการทำงานซ้ำ

            คำสั่งควบคุมอีกประเภทที่ใช้งานบ่อยๆคือคำสั่งลูป หรือการให้โปรแกรมทำงานซ้ำวนๆกันจนกว่าจะถึงเงื่อนไขที่เราได้เขียนเอาไว้

ลูปแบบ while

            ลูป while จะทำงานโดยการตรวจสอบเงื่อนไข หากเงื่อนไขจะทำคำสั่งภายในลูป 1 รอบแล้วกลับมาตรวจสอบการทำงานของเงื่อนไขอีกครั้งหากเงื่อนไขยังเป็นจริงอยู่จะเข้าไปทำตามคำสั่งภายในเงื่อนไขอีกครั้งและทำซ้ำจนกว่าจะพบว่าเงื่อนไขเป็นเท็จก็จะออกไปทำงานนอกลูป

 

while(เงื่อนไข)

{

            คำสั่ง 1;

}

คำสั่ง 2;

 

 


รูป 4-1

 

 

 

ตัวอย่าง

 


รูป 4-2

 

โปรแกรมนี้เป็นโปรแกรมให้พิมพ์ตัวเลขระหว่าง 1 ถึง 100 ที่หาร3และ5ลงที่

บรรทัดที่ 6 :       ประกาศตัวแปร x  เป็นชนิด int

บรรทัดที่ 8 : กำหนดค่าเริ่มต้นให้กับตัวแปร x โดยให้มีค่าเป็น 1 หมายความว่าเมื่อลูปทำการตรวจสอบเงื่อนไข

      จะเริ่มตรวจสอบจาก 1 เป็นตัวแรก

บรรทัดที่ 10 : คำสั่งลูป while พร้อมกำหนดเงื่อนไข ในที่นี้เงื่อนไขคือ ให้ทำซ้ำเรื่อยๆจนกระทั้ง x มีค่าเท่ากับ

       100 จึงให้ออกจากลูปไปทำคำสั่งนอกลูปได้

บรรทัดที่ 12-16 : ภายในลูป while มีการตรวจสอบเงื่อนไขด้วย if ว่าหากหารด้วย 3 และ 5 แล้วเหลือเศษศูนย์

หรือ หารลงตัว ให้แสดงผลออกทางหน้าจอ

บรรทัดที่ 18 : เพิ่มค่า x ในการตรวจสอบ โดยเพิ่มทีละ 1 จนกว่าค่า i จะถึง 100  กล่าวคือรอบแรกลูปจะใช้ x ที่

        มีค่าเท่ากับ 1 เพราะ ค่าเริ่มต้นเท่ากับ 1 เมื่อเข้าสู่ลูปจนถึงช่วงเพิ่มค่า x จะเพิ่มเป็น 2 และเป็น 3   

        4 5 ...100

            จะเห็นได้ว่าความสำคัญที่ทำให้ลูป while ทำงานได้ จะต้องไม่ลืม 3 ขั้นตอนสำคัญ ได้แก่ กำหนดค่าเริ่มต้น กำหนดเงื่อนไข เพิ่มค่า/ลดค่า

 

ลูปแบบ do-while

            ลูป do-while แตกต่างจากลูป while ตรงที่จะมีการทำงานก่อนเข้าลูป 1 ครั้ง

 

do()

{

            คำสั่ง 1;

} while(เงื่อนไข);

คำสั่ง 2;

 


รูป4-3

 

 

 

ตัวอย่าง

 


รูป4-4

            โปรแกรมนี้ต้องการแสดงตัวเลข 1-10

บรรทัดที่ 6 : ประกาศตัวแปร count เป็นตัวแปรชนิด int ให้ค่าเริ่มเป็น 1

บรรทัดที่ 8 : คำสั่ง do มีคำสั่งภายในคือ คำสั่งแสดงผล หลังจากแสดงผลเสร็จให้ทำการเพิ่มค่าตัวแปร count

     อีก 1

บรรทัดที่ 11 : ทำการวนลูปหาก count มีค่าเท่ากับ 11 หรือมากกว่า ให้ออกจากลูป

ผลลัพธ์ที่ได้

 


รูป4-5

ลูป for

            เป็นคำสั่งสำหรับการวนลูปเช่นเดียวกัน แต่สำหรับลูป for นั้น จะเป็นการเอาค่าเริ่มต้น เงื่อนไขและการเพิ่มค่า/ลดค่ามาไว้ในบรรทัดเดียวกัน

 

 

 

for(ค่าเริ่มต้น;เงื่อนไข;เพิ่มค่า/ลดค่า)

{

            คำสั่ง 1;

}

คำสั่ง 2;

ลูป for จะคล้ายกับ if คือถ้ามีคำสั่งเดียวไม่ต้องมี

{ } ได้

 


รูป 4-6

 

 

 

ตัวอย่าง

 


รูป 4-7

โปรแกรมต้องการให้แสดงตัวอักษร x สิบตัว

บรรทัดที่ 6 : ใช้ลูป for(ค่าเริ่มต้น;เงื่อนไข;เพิ่มค่า/ลดค่า) โดยให้ค่าเริ่มต้นเป็น 1 และกำหนดเงื่อนไขให้พิมพ์ค่าออกตราบเท่าที่ i น้อยกว่าหรือเท่ากับ 10

บรรทัดที่ 8 : คำสั่งแสดงค่า

ได้ผลลัพธ์เป็นตัวอักษร x สิบตัว

 


รูป 4-8

 

 

 

 

 

 

 

 

ลูป Nested for

           

 

เป็นการใช้ลูป for ซ้อน ลูป for

 

for(ค่าเริ่มต้น;เงื่อนไข;เพิ่ม/ลดค่า)

{

for(ค่าเริ่มต้น;เงื่อนไข;เพิ่ม/ลดค่า)

{

for(ค่าเริ่มต้น;เงื่อนไข;เพิ่ม/ลดค่า)

{

                                    คำสั่ง 1;

}

}

}

 

 


รูป4-9

 

 

 

คำสั่ง 2;

 

ตัวอย่างการใช้ Nested for loop

 


รูป 4-10

ต้องการให้โปรแกรมแสดงรูปปีรามิดที่มีเงาอยู่ทางซ้ายออกทางหน้าต่าง console.

บรรทัดที่ 7 : เป็นการใช้คำสั่ง for ตัวแรกเพื่อวนลูปสร้างแถวแนวนอน โดยให้สร้างทั้งหมด 11 แถว

บรรทัดที่ 9 : ให้โปรแกรมแสดง เครื่องหมาย – แทนเงาของปีรามิดโดยกำหนดค่าเริ่มต้นที่แถวที่ 1 ให้มีเงื่อนไข

      ว่าต้องแสดงเครื่องหมาย – เป็นจำนวนทั้งหมด 10-i  ครั้งแรก i =1 จะแสดงเครื่องหมาย – 9 ครั้ง

บรรทัดที่ 14 : ให้โปรแกรมแสดง เครื่องหมาย x แทนตัวของปีรามิดโดยให้แสดง x ออกมาครั้งละ (i*2)+1 ครั้ง

      แรก i เป็น 1 จะแสดง x ออกมาหนึ่งครั้ง อย่าลืมเครื่องหมาย “” ใน ( )

ผลลัพธ์ของโปรแกรมเป็นดังนี้

 


รูป 4-11

ลูป while(true) และ for(;;)

            คือนอกจากคำสั่ง while และ for ที่ต้องกำหนดเงื่อนไขให้ลูปทำงานแล้วบางครั้งเราก็ต้องการการทำงานจำพวกที่ให้ผู้ใช้ป้อนข้อมูลได้เรื่อยๆ ไม่จำกัดจนกว่าผู้ป้อนข้อมูลจะพอ สามารถใช้ลูปอีกแบบได้คือ ลูป while(true) หรือ for(;;) สองอย่างนี้มีค่าเท่ากัน คือกำหนดให้ลูปเป็นจริงเสมอก็จะทำการวนลูปไปเรื่อยๆจนกว่าจะพอใจ หรือใช้คำสั่ง break; ในการการออกจากลูป

 

 

คำสั่ง break; และ continue;

 

 

คำสั่ง break; เป็นคำสั่งให้โปรแกรมออกจากลูป

              ทันทีที่เจอคำสั่งนี้ มักใช้กับ while(true)

 

 

 

while ( true )

{

   คำสั่ง;

   break ;

   คำสั่ง;

}

 

 

 

 

 

คำสั่ง continue; เป็นคำสั่งให้โปรแกรมวนกลับขึ้น

ไปตรวจสอบเงื่อนไขลูปใหม่โดยข้ามการ

ทำงานรอบนั้นไปเลย

 

while ( true )

{

   คำสั่ง;

   continue ;

   คำสั่ง;

}

 

การใช้คำสั่ง break; และ continue;

 


รูป 4-12

            โปรแกรมนี้จะแสดงให้เห็นรอบของจำนวนการทำงานของลูป for ที่ให้วนลูปตั้งแต่ 1 ถึง 10 แต่เมื่อ i มีค่าเท่ากับ 3 จะไม่แสดงผลของรอบที่  i = 3 ออกทางหน้าจอเพราะให้ข้าม 3 ด้วยคำสั่ง continue; และเมื่อ i=5 จะทำการ break; ออกจากลูปคือลูปจะไม่วนจนถึง 10 รอบตามที่ได้ตั้งเงื่อนไขไว้

ผลลัพธ์จึงเป็นดังนี้

 


รูป 4-13

 

สิ่งที่ต้องหลีกเลี่ยง infinite loop

            Infinite loop คือลูปไม่รู้จบ เกิดจากความผิดพลาดเวลาที่เรากำหนดเงื่อนไข ทำให้ลูปทำงานวนซ้ำออกจากลูปไม่ได้เครื่องก็จะเริ่มช้าเพราะรันโปรแกรมติดๆกัน

 


รูป 4-14

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

 


รูป 4-15

เมื่อเกิดการรันโปรแกรมไม่รู้จบให้ทำการกดเครื่องหมายสีเหลี่ยมสีแดงที่มุมขวาบนของหน้าต่าง console เพื่อปิดการันโปรแกรมตามด้วยเครื่องกากบาทข้างๆ



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา