
คำสั่ง Nested if else

อัปเกรดสำหรับเนื้อหาเพิ่มเติม
True or false? When there is more than one condition to be tested, you can use nested statements.
ลีน่าสอนให้หุ่นยนต์ของเธอแจกช็อคโกแลต ให้กับมาเรียหรือลีออน หุ่นยนต์หยิบช็อคโกแลตขึ้นมาหนึ่งชิ้น มันเป็นรสนม และเงื่อนไข"ช็อคโกแลตนม"ก็เป็นจริง หุ่นยนต์มอบช็อคโกแลตให้กับมาเรีย แต่มาเรียไม่ต้องการมัน แม้มันจะเป็นช็อกโกแลตนมก็ตาม ฉันแพ้ถั่วน่ะ ถ้ามีถั่วในช็อคโกแลต ฉันกินไม่ได้หรอก ดังนั้นลีน่าจึงต้องสร้างคำสั่งใหม่ ให้กับหุ่นยนต์ ว่าถ้าเป็นช็อกโกแลตนม และถ้ามีถั่วอยู่ในนั้น หุ่นยนต์ก็ไม่ควรให้ช็อคโกแลตนั้น กับมาเรีย แล้วจะทำอย่างไรกับช็อคโกแลตดีล่ะ ลีออนชอบช็อคโกแลตแบบขมเท่านั้น ก็แค่ใส่มันกลับเข้าไปในกล่องไง เมื่อหุ่นยนต์หยิบช็อกโกแลตขึ้นมา มันจะดูว่าเป็นช็อกโกแลตนมหรือเปล่า แต่นั่นคงไม่พอแล้ว เพราะว่ามาเรียแพ้ถั่ว ถ้าเป็นช็อกโกแลตนม หุ่นยนต์ควรมองดูว่า มีถั่วอยู่ในนั้นไหม จะมีคำสั่ง "ถ้า" (If) ซ้อนคำสั่ง "ถ้า" (If) อีกทีหนึ่ง เมื่อเงื่อนไขที่ว่ามีถั่ว อยู่ในนั้นเป็นจริง หุ่นยนต์จะเอาช็อคโกแลต กลับเข้ามาวางในกล่อง ไม่เช่นนั้นหุ่นยนต์จะให้ ช็อคโกแลตแก่มาเรีย แต่เมื่อเงื่อนไขช็อคโกแลตนม ไม่เป็นเท็จ แน่นอนว่ามันต้องเลือกแบบขม ซึ่งเป็นของที่ลีออนชอบ ดังนั้นคำสั่งสำหรับหุ่นยนต์จึงควรเป็น "ให้ช็อคโกแลตกับลีออน" ลองทดสอบรหัสเทียมใหม่ดูสิ หุ่นยนต์หยิบช็อคโกแลตมาหนึ่งชิ้น และมันเป็นช็อคโกแลตนม เงื่อนไขแรกคือช็อคโกแลตนมเป็นจริง เงื่อนไขต่อไปที่ต้องทดสอบก็คือ"ถั่ว" แล้วคราวนี้เงื่อนไขเป็นจริงหรือเท็จล่ะ หุ่นยนต์เริ่มตรวจดูอย่างระมัดระวัง และมันก็เห็นว่ามีถั่วในช็อคโกแลตชิ้นนี้ เงื่อนไขนั้นเป็นจริง ดังนั้นหุ่นยนต์จะทำตามคำสั่ง คือใส่ช็อคโกแลตกลับเข้าไปในกล่อง ส่วนคำสั่งที่เหลือจะดำเนินการต่อได้ เฉพาะในกรณีที่ เงื่อนไขของช็อคโกแลตนมเป็นเท็จ หรือถ้าเงื่อนไขของช็อคโกแลตนมเป็นจริง และเงื่อนไขเรื่องถั่วเป็นเท็จ โปรแกรมจะสิ้นสุดลงเมื่อหุ่นยนต์ นำช็อคโกแลตกลับเข้าไป เราจะเริ่มโปรแกรมใหม่อีกครั้ง เพื่อลองชิ้นใหม่ คราวนี้ก็เป็นช็อคโกแลตนมอีกครั้ง ดังนั้นเงื่อนไขแรกจึงเป็นจริง สิ่งต่อไปที่หุ่นยนต์ตรวจสอบ ก็คือมีถั่วอยู่ในนั้นหรือไม่ แต่ไม่มีถั่วในนั้น และเงื่อนไข ที่สองก็เป็นเท็จ นั่นนำไปสู่ภาวะคำสั่ง "อื่นๆ" (Else) ให้ช็อคโกแลตแก่มาเรีย และจากนั้นโปรแกรมจะสิ้นสุดลง ลีน่าได้เขียนคำสั่ง "ถ้า"(If) ให้ซ้อนคำสั่ง "ถ้า"(If) อีกคำสั่งหนึ่ง สิ่งนี้เรียกว่าคำสั่ง "ถ้า"(If) ที่ซ้อนกัน ด้วยคำสั่ง ถ้า (If) ที่ซ้อนกัน หุ่นยนต์สามารถตัดสินใจได้ว่า จะเป็นช็อคโกแลตเป็นรสนมหรือแบบขม และช็อคโกแลตรสนมนั้น มีถั่วปนอยู่ด้วยหรือไม่ ตอนนี้มาเรียสามารถทานช็อคโกแลตได้ โดยไม่ต้องกังวลแล้วว่า มีถั่วอยู่ในนั้นหรือเปล่า