สร้างเกม Unity - เขียนโปรแกรมเบื้องต้น ตอนที่ 6 การวน Loop
สร้างเกม ด้วย Unity บทความนี้เป็นการเขียนโปรแกรมเบื้องต้นตอนที่ 6 คือ Loop
Loop ใช้เรียกกับการเขียนโปรแกรมที่ วนทำซ้ำของโค้ดนั้นๆ เพื่อลดบรรทัดในการเขียนโปรแกรม Loop จึงมีประโยชน์มากในกรณีที่ต้องการเขียนแบบเดิมซ้ำๆ หรือโปรแกรมที่เปลี่ยนการคำนวนนิดหน่อยแต่ก็ยังทำซ้ำหลายๆจุดอยู่ดี
Loop ใช้เรียกกับการเขียนโปรแกรมที่ วนทำซ้ำของโค้ดนั้นๆ เพื่อลดบรรทัดในการเขียนโปรแกรม Loop จึงมีประโยชน์มากในกรณีที่ต้องการเขียนแบบเดิมซ้ำๆ หรือโปรแกรมที่เปลี่ยนการคำนวนนิดหน่อยแต่ก็ยังทำซ้ำหลายๆจุดอยู่ดี
คำสั่งในภาษาทั่วไป คำสั่งที่ใช้ในการวน Loop มีหลายคำสั่ง เช่น for ,while , dowhile ,foreach เป็นต้น
ในบทความนี้เราจะแนะนำคำสั่ง for(xxxx){}
คำสั่ง for มีองค์ประกอบดังนี้
เริ่มต้นด้วยคำสั่ง คือ for(x1 ; x2 ; x3) { x4 }
x1 = ตัวแปรสำหรับ loop พร้อมกำหนดค่าให้ตัวแปรนั้น
x2 = เหงื่อนไขที่ loop จะทำงาน ถ้าเป็น true ก็ยังจะทำงานบรรทัดแรกต่อจากปีกกาของ for จนกว่าจะเป็น false ถึงจะออกจาก loop แล้วไปทำงานหลัง ปีกกาปิดของ for
x3 = oraretor จะบวกค่าหรือลบค่าก็ว่ากันไป
x4 = คือการเขียนโปรแกรมทั่วไป ใส่เงื่อนไขต่างๆ
จากภาพด้านบนจะเห็นว่า เรามีการประกาศตัวแปรเป็น Array แล้วก็อยากจะดูผลลัพธ์ทั้ง 5 โดยการ Debug.log(ตัวแปรนั้นๆ)
จากนั้นมองวิเคราะห์โค้ดที่เราเขียนดูแล้วว่า ใน 5 บรรทัดที่เราเขียนออกมาคำสั่งเหมือนกันต่างกันเพียง Index ข้างในของ Arrey จึงตัดสินใจแล้วว่าจะใช้ loop ดีกว่า
แน่นอน เราทราบว่า Array มีขนาดเท่ากับ 5 เหงื่อนไขใน loop จึงกำหนด ให้ i < 5 ให้เป็นจริงและทำคำสั่งภายในปีกกา โดยครั้งแรก i จะเท่ากับ 0 และรอบต่อไปจะเป็น 1 เพราะในส่วนของ oparetor เราบวกค่าให้มันทีละหนึ่ง รอบต่อๆไปก็เป็น 2,3 ตามลำดับจนถึง 4 เป็นรอบสุดท้าย ส่วนในรอบที่ 5 เมื่อ i มีค่าเท่า 5 เหงื่อนไขของ loop นี้จะเป็น false ทันที เพราะเช็คเหงื่อนไขว่า 5 < 5 เท่ากับ false
ผลลัพธ์ที่ได้
จากรูปด้านบน แน่นอน loop จะมีประสิทธิภาพมาก หากจำเป็นต้องเขียนหลายๆบรรทัดซ้ำไปซ้ำมาเป็นร้อยๆบรรทัด ต่างตัวอย่าง คือจะวนเก็บค่า และอีก loop คือวนแสดงผล
ผลลัพธ์
ก็จบเพียงเท่านี้กับการวน loop นะครับ เพื่อให้มีพื้นฐานพอคร่าวๆ loop เป็นคำสั่งที่ใช้บ่อยและใช้แน่นอน ในการเขียนโปรแกรมเบื้องต้นครับ หวังว่าบทความนี้จะเป็นประโยชน์ ให้เพื่อนๆได้นำไปสร้างเกมต่อได้ในอนาคตครับ
Post a Comment