4.5 Nested statement
โครงสร้างการทำงานของคำสั่ง Nested statement
โครงสร้างการทำงานของคำสั่ง ประกอบด้วย
รูปแบบคำสั่งและการทำงาน โจทย์ตัวอย่างและผังงาน และชุดคำสั่งโปรแกรม
มีรายละเอียดดังต่อไปนี้
1.1 รูปแบบคำสั่ง โครงสร้างการทำงานแบบ Nested
statement มีรูปแบบคำสั่ง ดังนี้
if <condition1> :
if <condition2>:
<statement1>
else:
<statement2>
else:
if <conditon3> :
<statement3>
else:
<statement4>
1.2 การทำงานของคำสั่ง เป็นคำสั่งเปรียบเทียบเงื่อนไขนิพจน์ทางตรรกะ
โดยที่เงื่อนไขซ้อนเงื่อนไขเช่นในกรณีเปรียบเทียบเงื่อนไขแรก (condition1)
แล้วปรากฏว่าเป็นจริง โปรแกรมจะเลือกทำคำสั่งหลังอักขระ : แต่หลังอักขระ : มีเงื่อนไขที่สอง (condition2)
ที่ต้องตรวจสอบ เช่นเดียวกันถ้าเงื่อนไขตัวแรกเปรียบเทียบกันแล้วปรากฏว่าได้ผลลัพธ์ออกมาเป็นเท็จ
โปรแกรมจะเลือกทำคำสั่งหลัง else : แต่ต้องไปพบกับเงื่อนไขที่สาม
(condition3) ที่ซ้อนอยู่อีกเช่นกัน หลักการประมวลผลคำสั่งประเภทนี้มีหลักการง่าย
ๆ ที่ผู้เขียนโปรแกรมควรทำความเข้าใจให้ชัดแจ้ง คือ ในกรณีที่ตรวจสอบเงื่อนไขแล้วเป็นจริง
โปรแกรมจะดำเนินการทำงานในส่วนที่เป็น statement หลังเครื่องหมาย
: เสมอ จะมีจำนวนคำสั่งหลาย statement ก็ได้
ซึ่ง statement ที่มีมากกว่าหนึ่งจะจัดย่อหน้าให้ตรงกันเสมอ ในทางตรงกันข้ามถ้าหากเมื่อตรวจเงื่อนไขแล้วเป็นเท็จ
โปรแกรมจะประมวลผลหลัง else : เสมอ และจะประมวลผลทุก statement
ที่อยู่ในย่อหน้าเดียวกัน เพราะฉะนั้นเมื่อมีเงื่อนไขภายในย่อยไปอีก
จึงใช้หลักการนี้พิจารณาได้ต่อไปเรื่อย ๆ
1.3 โจทย์ตัวอย่าง จงเขียนโปรแกรมรับตัวเลขจำนวนเต็ม 3 จำนวนจากแป้นพิมพ์ แล้วให้แสดงว่าจำนวนตัวเลขใดมีค่ามากที่สุด
1.4 ผังงาน จากตัวอย่างที่ 4.5 สามารถเขียนเป็นผังงานได้ดังภาพที่ 4.17
1.5 ชุดคำสั่งโปรแกรม จากผังงานในภาพที่ 4.17 สามารถเขียนเป็นชุดคำสั่งภาษาไพธอนได้ดังภาพที่ 4.18
ภาพที่ 4.18 แสดงชุดคำสั่งของโปรแกรม
1.6 คำอธิบายโปรแกรม มีดังนี้
บรรทัดที่ 2-4 เป็นคำสั่งแสดงข้อความ และรับตัวเลขจำนวนเต็มจากแป้นพิมพ์มาเก็บไว้ที่ตัวแปร
A B และ C
บรรทัดที่ 5 เป็นคำสั่งเปรียบเทียบตัวแปร
A >= B หรือไม่ ถ้าใช่ให้ประมวลผลที่บรรทัดที่
6 ต่อไป ถ้าไม่ใช่ให้ข้ามไปประมวลผลบรรทัดที่ 10
บรรทัดที่ 6 เป็นคำสั่งเปรียบเทียบตัวแปร A >= C หรือไม่ ถ้าใช่ให้ประมวลผลบรรทัดที่ 7 ต่อไป ถ้าไม่ใช่ให้ประมวลผลบรรทัดที่ 8
บรรทัดที่ 7 เป็นคำสั่งที่ให้แสดงผลข้อความ
“Max 1 = A” และค่าตัวเลขที่เก็บในตัวแปร A
บรรทัดที่ 8 เป็นคำสั่งที่จะประมวลผลเมื่อเงื่อนไขจาก บรรทัดที่ 6 เป็นเท็จ
บรรทัดที่ 9 เป็นคำสั่งที่ให้แสดงผลข้อความ “Max 3 = C” และค่าตัวเลขที่เก็บในตัวแปร
C
บรรทัดที่ 10
เป็นคำสั่งที่จะประมวลผลเมื่อเงื่อนไขจาก บรรทัดที่ 5
เป็นเท็จ
บรรทัดที่ 11 เป็นคำสั่งเปรียบเทียบตัวแปร
B >= C หรือไม่ ถ้าเป็นจริงให้ประมวลผลบรรทัดที่
12 ต่อไป ถ้าเป็นเท็จให้ประมวลผลบรรทัดที่ 13
บรรทัดที่ 12 เป็นคำสั่งที่ให้แสดงผลข้อความ “Max 2 = B” และค่าตัวเลขที่เก็บในตัวแปร
B
บรรทัดที่ 13 เป็นคำสั่งที่จะให้ประมวลผลเมื่อเงื่อนไขจาก
บรรทัดที่ 11 เป็นเท็จ
บรรทัดที่
14 เป็นคำสั่งที่ให้แสดงผลข้อความ “Max 3 = C” และค่าตัวเลขที่เก็บในตัวแปร C
1.7 ผลลัพธ์ของโปรแกรม ผลลัพธ์ที่ได้จากการสั่งประมวลผลโปรแกรมจากภาพที่
4.18 ได้ผลลัพธ์ดังภาพที่ 4.19
บทสรุป
การเขียนคำสั่งเพื่อควบคุมการทำงานด้วยการใช้เงื่อนไขนั้น
ทุก ๆ โปรแกรมจำเป็นต้องใช้ ซึ่งถือได้ว่าเป็นหัวใจสำคัญของการเขียนโปรแกรมในทุก ๆ
ภาษา ดังนั้นถ้าหากมีประสบการณ์จากภาษาอื่น ๆ มาบ้างแล้วจะทำให้เข้าใจได้ง่ายยิ่งขึ้น
หลักการเขียนโปรแกรมแบบนี้จะมีลักษณะคล้ายคลึงกับภาษาอื่น ๆ ได้แก่
การใช้โครงสร้าง if สำหรับตรวจสอบตามเงื่อนไข ซึ่งมีผลลัพธ์เป็นจริงกับเท็จ
กรณีนี้จะเขียนคำสั่งให้กระทำในกรณีที่เป็นจริงเท่านั้น การใช้โครงสร้าง if…else…สำหรับให้ทำงานทั้งกรณีที่เงื่อนไขเป็นจริงและเป็นเท็จ
ดังนั้นการเขียนคำสั่งจะต้องเกิดขึ้นทั้งกรณีเป็นจริงและเป็นเท็จ และโครงสร้าง elif ใช้สำหรับสร้างมีเงื่อนไขย่อย ๆ
ต่อไปอีกเรื่อย ๆ ถ้าในกรณีที่เป็นเท็จ จนหมดเงื่อนไข และโครงสร้างสุดท้ายได้แก่ nested
statement เป็นการสร้างเงื่อนไขย่อย ๆ
ทั้งด้านที่เป็นจริงและสร้างเงื่อนไขด้านที่เป็นเท็จ
ภาษาไพธอนจะแตกต่างกับภาษาอื่น ๆ ในด้านการวางตำแหน่งและรายละเอียดเล็ก ๆ
น้อย ๆ
ในบทนี้จึงได้นำเอาผังงานซึ่งเป็นมาตรฐานในการเขียนคำสั่งมาประกอบการอธิบาย
เพื่อให้ผู้ที่เริ่มเรียนภาษาไพธอนเป็นภาษาแรกได้มีความเข้าใจ
และได้มีคำอธิบายแต่ละคำสั่งเป็นรายบรรทัด
เพื่อเพิ่มความเข้าใจให้แก่ผู้อ่านมากยิ่งขึ้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น