วันพุธที่ 25 มิถุนายน พ.ศ. 2557

การใช้ลูปแบบ for



การใช้ลูปแบบ for

         for เป็นคีย์เวิร์ดสำหรับกำหนดการทำงานแบบวงรอบหรือลูป (Loop) จากค่าเริ่มต้น จนถึงค่าสุดท้ายของตัวที่ใช้เป็นตัวนับ โดยที่ตัวนับไม่จำเป็นต้องเริ่มต้นจาก 0 และอาจเป็นการนับแบบเพิ่มค่า หรือลดค่าก็ได้รูปแบบพื้นฐาน คือการใช้ลูปแบบ for

   โดยโปรแกรมจะเปรียบเทียบตัวนับว่าอยู่ภายในเงื่อนไขหรือไม่ หากอยู่ภายในเงื่อนไขก็เปลี่ยนค่าของตัวนับเพื่อนวนลูปถัดไป แต่หากตัวนับไม่อยู่ในเงื่อนไขก็จะออกจากลูปไป เช่น


       ความหมายของลูป for จากโค้ดข้างบนคือ ให้เริ่มนับจาก 0 ถ้า i ยังมีค่าน้อยกว่าหรือเท่ากับ 10 ก็ให้เพิ่มค่าตัวนับไปอีก 1 แล้ววนลูปไปเรื่อยๆและในรูปต่อๆไปค่า i ก็จะถูกเพิ่มทีละ 1 ซึ่งลูปจะสิ้นสุดเมื่อเงื่อนไข i <= 10 เป็นเท็จ หรือเมื่อ i มีค่ามากกว่า 10 นั่นเอง

ของควรรู้เพิ่มเติมสำหรับลูป for มีดังนี้

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

2. ตัวนับอาจไม่ใช่เลขจำนวนเต็มเสมอไป อาจเป็นเลขจุดทศนิยมก็ได้ เช่น

3. ไม่ ควรเปลี่ยนไปค่าตัวนับภายในลูป เพราะอาจเกิดข้อผิดพลาดขึ้นได้ เช่น


ตัวอย่าง 3.4 ถ้าเราต้องสร้างรูปสามเหลี่ยมที่มีการจัดเรียงดังรูป จะมีหลักการคิดดังนี้ คือ


-  จำนวนที่เครื่องหมาย * แต่ละบรรทัดจะเท่ากับลำดับของบรรทัดนั้น เช่น บรรทัดที่ 1 มี 1 อัน, บรรทัด
   ที่ 2 มี 2 อันเป็นต้น
-  ใน .NET นั้นตัวแปรชนิดสตริงจะมีคำสั่ง (เมธอด) ในการเขียนอักขระซ้า เพื่อให้ผลลัพธ์มีจำนวน
   อักขระตามที่กำหนด คือ PadRight() เช่น
 - สำหรับการเขียนโปรแกรม เราจะใช้ลูป for เพื่อเขียนแต่ละบรรทัด โดยตัวนับของลูปก็คือลำดับ
   บรรทัด และจะใช้ตัวนับในการกำหนดเป็นจำนวน * ที่ต้องเขียนในลูปนั้นๆ
  ในตัวอย่างจะมีการ
   พลิกแพลงเล็กน้อย คือ ผู้ใช้สามารถกำหนดจำนวนบรรทัด และอักขระที่จะใช้เองได้ ดังต่อไปนี้

1.วางคอนโทรล พร้อมกำหนดชื่อที่จำเป็นดังรูป

2.ดับเบิลคลิกที่ปุ่ม แสดงผล แล้วกำหนดโค้ดดังนี้

3. รันโปรแกรม แล้วใส่อักขระและจำนวนที่ต้องการ ซึ่งลักษณะผลลัพธ์จะเป็นดังนี้
4. จากตัวอย่างนี้ หากเราต้องการให้เป็นสามเหลี่ยมกลับหัวดังรูป ให้กำหนดลูปแบบนับลง โดย
    เริ่มนับลง โดยเริ่มนับจากจำนวนบรรทัดไปยัง 1 เช่น ซึ่งเราแก้ไขโค้ดเพียงบรรทัดเดียว คือ


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


- จากรูป สิ่งที่เราต้องเขียนลงไปแต่ละแถว คือ อักขระและช่องว่างหน้าอักขระ
- จำนวนอักขระที่ต้องเขียนในแต่ละแถว คือ 1,3,5,7, … ตามลำดับ หรือเป็นเลขคี่นั่นเองสูตรในการคิดก็
  คือ (2*ลาดับ)-1
- จำนวนช่องว่างหน้าอักขระที่ต้องเขียนในแต่ละแถว จะสัมพันธ์กับจำนวนแถวที่ต้องเขียน เช่น สมมุติ
  เราจะเขียนทั้งหมด 4 แถว แสดงว่า
แถวที่ 1 จะต้องมีช่องว่าง 3 ช่อง
แถวที่ 2 จะต้องมีช่องว่าง 2 ช่อง
แถวที่ 3 จะต้องมีช่องว่าง 1 ช่อง
แถวที่ 4 จะต้องมีช่องว่าง 0 ช่อง 
ดังนั้น สูตรในการคิดสหรับการเขียนช่องว่างของแต่ละบรรทัด คือ จำนวนแถว – ลำดับแถว

- เนื่องจากฟอนต์ โดยทั่วไปความกว้างของอักขระกับความกว้างของช่องว่างจะไปเท่ากัน ทำให้แต่ใน
  การแสดงผลนั้น แถวในแนวตั้งมักจะจัดเรียงได้ไม่ตรงกัน ซึ่งจะดูไม่สวย แต่เราสามารถแก้ไขปัญหา
  โดยการกำหนดฟอนต์เป็นชนิด Fixed Font หรือฟอนต์ที่มีความกว้างของอักขระเท่ากันหมด เช่น
  Courier
  

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

1. จัดวางคอนโทรลลงไป พร้อมกำหนดพร็อปเพอร์ตี้ที่สาคัญดังรูป

2. ดับเบิ้ลคลิกที่ปุ่ม แสดงผล แล้วกำหนดโค้ดลงไปดังนี้


3. รันโปรแกรม แล้วกำหนดอักขระและจำนวนแถว ลักษณะผลลัพธ์เป็นดังนี้


ไม่มีความคิดเห็น:

แสดงความคิดเห็น