
คำสั่ง If else

อัปเกรดสำหรับเนื้อหาเพิ่มเติม
True or false? When using "If else" instructions, in the movie's example, only one condition is required.
ลีน่าซื้อช็อคโกแลตมากล่องหนึ่ง มีทั้งรสนมและช็อคโกแลตแบบขมผสมกัน เธอได้สอนหุ่นยนต์ของเธอให้แจกช็อคโกแลต ที่มาเรียและลีออนชื่นชอบ นี่คือหน้าตาของคำสั่งของรหัสเทียมที่ ลีน่าเขียนลงไปในหุ่นยนต์ หยิบช็อคโกแลต ถ้าเป็นช็อคโกแลตนม ให้ส่งมันแก่มาเรีย แต่หากเป็นช็อคโกแลตแบบขม ให้มอบมันแก่ลีออน เรามาดูกันว่ารหัสเทียมนั้นทำงานยังไง หุ่นยนต์หยิบช็อกโกแลตมาหนึ่งชิ้น และมันก็เป็นช็อกโกแลตนม เงื่อนไขแรกคือช็อกโกแลตนม - ซึ่งเป็นจริง, ดังนั้น หุ่นยนต์จึงมอบช็อคโกแลตนมให้กับมาเรีย ตอนนี้หุ่นยนต์ไม่มีช็อกโกแลต ในมืออีกต่อไป อย่างไรก็ตาม มันยังคงไปที่ คำสั่งต่อไป, ซึ่งก็คือ ถ้าเป็นช็อคโกแลตขม แต่หุ่นยนต์ไม่ถือช็อกโกแลตสักชิ้น ดังนั้นจึงไม่จำเป็นที่จะต้องตรวจสอบว่า เป็นช็อกโกแลตขมไหม ลีนาสอนหุ่นยนต์เกี่ยวกับเรื่องนี้ ได้อย่างไร? รหัสเทียมของลีน่ามีอยู่สองเงื่อนไข ถ้าเป็นช็อกโกแลตนม และ ถ้าเป็นช็อกโกแลตแบบขม ช็อคโกแลตกล่องนี้บรรจุช็อคโกแลต อยู่สองแบบเท่านั้น ถ้าไม่ใช่ช็อคโกแลตนมที่ หุ่นยนต์หยิบขึ้นมา มันต้องเป็นช็อกโกแลตแบบขม รหัสเทียมจึงสามารถเปลี่ยนเป็น ถ้าเป็นช็อกโกแลตนม ให้ส่งมันแก่มาเรีย นอกจากนี้ ให้ส่งช็อกโกแลตแก่ลีออน ดังนั้นจึงจำเป็นต้องมีเงื่อนไขเดียว ที่มาเรียและลีออน จะให้ได้ช็อคโกแลตที่พวกเขาชอบ ลองมาทดสอบรหัสเทียมของลีน่ากัน หุ่นยนต์หยิบช็อกโกแลตมาหนึ่งชิ้น และมันก็เป็นรสนม เงื่อนไข'ช็อคโกแลตนม'เป็นจริง หุ่นยนต์จึงให้ช็อคโกแลตแก่มาเรีย แล้วจากนั้น เห็นสิ่งที่เกิดขึ้นแล้วไหมล่ะ? เมื่อเงื่อนไข'ช็อคโกแลตนม'เป็นจริง หุ่นยนต์ก็ข้ามทั้งคำสั่ง อื่นๆ และคำสั่ง "เอาช็อกโกแลตให้ลีออน" โปรแกรมจะสิ้นสุดลงหลังจากที่หุ่นยนต์ มอบช็อคโกแลตให้มาเรีย ทีนี้มาเริ่มโปรแกรมใหม่กันดีกว่า หุ่นยนต์นำช็อคโกแลตชิ้นใหม่มา คราวนี้มันเป็น รสขม เงื่อนไขเป็นเท็จ โปรแกรมจะข้ามคำสั่ง ให้ช็อคโกแลตแก่มาเรียไป ตอนนี้หุ่นยนต์รู้แล้วว่ามัน ไม่ใช่ช็อคโกแลตนม แล้วจากนั้นมันจึงทำตามคำสั่ง "อื่นๆ" และคำสั่ง "มอบช็อคโกแลตให้ลีออน" ตามลำดับ เท่านี้ก็พอแล้วสำหรับหุ่นยนต์ที่จะ ตรวจสอบว่าช็อกโกแลตนั้นเป็นรสนมหรือเปล่า เพื่อให้รู้ว่าใครกำลังจะได้ ช็อคโกแลตชิ้นนี้ เมื่อลีน่าใช้เงื่อนไขน้อยลง รหัสจะมีประสิทธิภาพมากขึ้น เป็นการเพียงพอแล้วกับการทดสอบเพียง เงื่อนไขเดียวแทนสองเงื่อนไข รหัสของลีน่าอ่านง่ายขึ้น มันเป็นรหัสที่เรียบหรูกว่า ใช่แล้ว อันที่จริงพวกโปรแกรมเมอร์ ก็พูดเรื่องรหัสที่เรียบหรูแบบนี้แหละ รหัสเทียมอันใหม่เป็นวิธีที่ดีกว่า ในการแก้ปัญหา มันเป็นอัลกอริทึมที่ดีขึ้น ในการแจกช็อคโกแลต ดังนั้นตอนนี้รหัสจึงดูเรียบหรู กว่าตอนแรก ไม่มีรหัสที่ดูเงอะงะอีกต่อไปแล้ว