ทั้งหมดขวา ดังนั้นตอนนี้เราจะมาพูดคุยเกี่ยวกับบางสิ่งบางอย่าง ที่มีประโยชน์จริงๆใน programming-- งบเงื่อนไข ดังนั้นการแสดงออกเงื่อนไข อนุญาตให้โปรแกรมของคุณ ในการตัดสินใจและใช้เวลาที่แตกต่างกัน ส้อมในถนนบางสิ่งบางอย่าง ฉันพูดพาดพิงถึงก่อนหน้านี้เล็กน้อย ขึ้นอยู่กับค่าของตัวแปรที่ หรือขึ้นอยู่กับสิ่งที่ผู้ใช้ปัจจัยการผลิตที่ โปรแกรมเมอร์ที่บรรทัดคำสั่ง หรือหากคุณมีพรอมต์ หรือสิ่งที่ต้องการ ซีมีสองวิธีที่แตกต่างกันไป แสดงเงื่อนไขการแสดงออกซึ่ง เรายังอาจจะเรียกว่า สาขาเงื่อนไขในโปรแกรมของคุณ และบางส่วนของเหล่านี้จะไปดู สวยคุ้นเคยกับคุณจากรอยขีดข่วน ดังนั้นเราก็จะดึงพวกเขา ขึ้นเคียงข้างเพียง คุณสามารถทำให้การเปรียบเทียบว่าในหัวของคุณ ดังนั้นถ้าเป็น if-- สวย เงื่อนไขง่ายๆ ถ้าคุณจำจาก รอยขีดข่วนบนด้านขวาที่นี่ คุณสามารถกรอกข้อมูลลงในที่เป็นรูปหกเหลี่ยม ด้วยสีหน้าสีฟ้าถ้าเมาส์ลง หรือถ้า x น้อยกว่า 10 หรือสิ่งที่ต้องการ แล้วถ้า x น้อยกว่า 10 หรือถ้าเมาส์ในความเป็นจริงลง ทั้งหมดของรหัสภายในของ ชิ้นส่วนปริศนาที่จะดำเนินการ ทุกสิ่งที่เหมาะสม ภายในที่รูปร่าง C ในทำนองเดียวกันเราจะมี ถ้ามีบนซ้าย ถ้านิพจน์บูลีน, ที่ฉันเพียงแค่ใช้ แทนหนึ่งในบูลีนที่ สำนวนที่เราพูดถึงก่อนหน้านี้ เปิดรั้งหยิกวงเล็บปีกกาใกล้ ดังนั้นคิดว่าการเปิดหยิก รั้งและปิดวงเล็บปีกกา เป็นจัดเรียงของคล้ายกับแซนวิช ผลกระทบของการหากบล็อกด้านขวา จากรอยขีดข่วน ถ้านิพจน์บูลีน ในงบถ้าเป็นความจริง แล้วทุกบรรทัดของรหัส ระหว่างวงเล็บปีกกา จะดำเนินการในการสั่งซื้อ จากบนลงล่าง ถ้านิพจน์บูลีน เป็นเท็จเราจะ ข้ามทุกสิ่งในระหว่าง วงเล็บปีกกาเพราะเราเท่านั้น ต้องการที่จะไปลงที่ทางแยกในถนน ถ้านิพจน์บูลีนเป็นความจริง เราสามารถใช้เวลานี้ในขั้นตอนเดียว ต่อไปด้วยถ้าอื่น ดังนั้นบล็อก Scratch นี้ สวยคล้ายกับที่ เราเห็นเพียงสองที่ผ่านมายกเว้น มันจะใช้เวลาสองเส้นทางที่แตกต่างกันตาม ในสิ่งที่เกิดขึ้น ดังนั้นถ้าเป็นเมาส์ลง หรือถ้า x น้อยกว่า 10 เราจะทำทุกอย่างที่อยู่ในระหว่าง ที่แยกแรกที่ซีครั้งแรก มิฉะนั้นถ้าเมาส์อยู่ ขึ้นหรือ x ไม่น้อยกว่า 10 เราจะทำทุกอย่างในชุดที่สอง และที่คล้ายคลึงกับสิ่งที่คุณเห็น ที่นี่สำหรับการแสดงออกเซลเซียสหากบูลีน ทำสิ่งที่ระหว่าง ชุดแรกของวงเล็บปีกกา อื่นทำสิ่งที่ระหว่าง ชุดที่สองของวงเล็บปีกกา ดังนั้นถ้าบูลีน การแสดงออกเป็นความจริงที่เราจะ ทำสิ่งที่ระหว่างชุดแรก ถ้านิพจน์บูลีนเป็น เท็จที่จะเรียกอื่น และเราจะทำอะไรก็ตามใน ชุดที่สองของวงเล็บปีกกา อีกครั้งบนลงล่างทั้งหมด ระหว่างบรรทัดในวงเล็บ ใน C ก็เป็นไปได้ที่จะสร้าง ถ้า-อื่นถ้า-อื่นห่วงโซ่ ในความเป็นจริงคุณสามารถมีถ้า-อื่นถ้า-อื่น ถ้า-อื่นถ้าและอื่น ๆ และอื่น ๆ และอื่น ๆ บน ในเกานี้จำเป็นต้องใช้ รังบล็อก คุณสามารถเพิ่มถ้า-อื่นและคุณต้อง ใส่อีกคนหนึ่งภายในอื่น, และอื่น ๆ และจะมีชนิด ของที่ซ้อนกันและมีความซับซ้อน แต่ซีเราจะได้ไม่ต้องทำอย่างนั้น เราสามารถจริงเพียงแค่มี จะเป็นห่วงโซ่เช่นนี้ อีกครั้งในขณะที่คุณอาจคาดหวังทั้งหมดของ สาขาเหล่านี้เป็นพิเศษร่วมกัน คุณสามารถเท่านั้นที่เคยไป ลงหนึ่งของสาขา ถ้าเป็นจริง มิฉะนั้นถ้านี้เป็นจริง มิฉะนั้นถ้านี้เป็นจริง มิฉะนั้นจะทำเช่นนี้ ดังนั้นทั้งสี่สาขาในครั้งนี้ ตัวอย่างเช่นเป็นพิเศษร่วมกัน มันเป็นถ้า-อื่นถ้า-อื่นห่วงโซ่ มันเป็นไปได้ว่า และบางครั้งก็มีประโยชน์มาก เพื่อสร้างห่วงโซ่ของการไม่ได้ สาขาพิเศษร่วมกัน ในตัวอย่างนี้จะมีเพียงสามและ สาขาสี่เป็นพิเศษร่วมกัน มันอาจจะเป็นได้ว่าคุณจะทำได้ ตอบสนองเงื่อนไขแรก, และคุณสามารถตอบสนองความ เงื่อนไขที่สอง และคุณสามารถตอบสนองความ สภาพที่สามซึ่งในกรณีที่ คุณจะไปลงสาขาแรก แล้วคุณไปลงเป็นสาขาที่สอง แล้วคุณจะไปลงสาขาที่สาม หรือบางทีคุณอาจตอบสนองแรก สภาพการและเงื่อนไขที่สอง แต่คุณไม่ตอบสนอง สภาพที่สาม ในกรณีนี้คุณลงไปครั้งแรก สาขาและสาขาที่สอง แล้วสาข​​าที่สี่ เหตุผลนี้เป็นที่อื่น จะผูกที่ใกล้ที่สุดถ้า ดังนั้นแม้ว่ามี อื่นที่นี่ว่า ไม่จำเป็นต้องสร้างร่วมกัน ห่วงโซ่พิเศษของทุกอย่าง มันเป็นเพียงการแสดงออก มีกับบูลีน 3-- แสดงออกว่าเป็น ร่วมกันเฉพาะกับอื่น ดังนั้นจึงมีความเป็นไปได้และ บางครั้งที่มีประโยชน์มาก ที่ผมกล่าวว่าเพื่อสร้างห่วงโซ่ของ ไม่ได้ร่วมกันสาขา แต่เพียงผู้เดียว ลองมาดูที่แตกต่างกัน ชนิดของเงื่อนไขที่ คุณไม่เคยเห็นมาก่อนในรอยขีดข่วน มีสิ่งที่เรียกว่าเป็น คำสั่งสวิทช์ คำสั่งที่เป็นสวิทช์ ชนิดของเรียบร้อยเพราะมันเป็น เป็นคำสั่งที่มีเงื่อนไขที่ช่วยให้ คุณสามารถระบุกรณีที่แตกต่างกัน แทนที่จะอาศัยบูลีน การแสดงออกในการตัดสินใจสำหรับคุณ ดังนั้นตัวอย่างเช่นสมมติว่า ที่ฉันมีโปรแกรมนี้ และผมขอให้ผู้ใช้ เพื่อให้ข้อมูลกับผม ดังนั้นผมจึงพูดว่า int x = รับ Int () และถ้าคุณไม่คุ้นเคยเลย ได้รับ int เป็นฟังก์ชันที่เป็น ยังรวมถึงในห้องสมุด CS50, ดังนั้นหากคุณ # รวม CS50.H คุณจะต้อง การเข้าถึงการรับ Int () และทั้งหมดของมัน cousins​​-- GetFloat, GetString และอื่น ๆ โดยทั่วไปหนึ่งรับฟังก์ชั่นสำหรับทุกคน ชนิดของข้อมูลที่เราได้กล่าวแล้ว ดังนั้น Int x เท่ากับ GetInt โดยทั่วไปสิ่งที่เกิดขึ้น เป็นฉันที่สถานี ผมขอให้ผู้ใช้สามารถพิมพ์ในจำนวน และที่นี่ฉันเปลี่ยน สิ่งที่ฉันทำขึ้นอยู่ เกี่ยวกับสิ่งที่ผู้ใช้พิมพ์ที่พรอมต์ ดังนั้นหากพวกเขาพิมพ์หนึ่งที่ผมพิมพ์ออกมาอย่างใดอย่างหนึ่ง แล้วฉันจะทำลาย ถ้าพวกเขาพิมพ์สองผมพิมพ์ออกมาสอง แล้วฉันจะทำลาย มันเป็นสิ่งสำคัญที่จะ แบ่งระหว่างแต่ละกรณี เพราะมิฉะนั้นคุณจะตกผ่าน ดังนั้นถ้าฉันไม่ได้มีการใด ๆ มีการแบ่งและผู้ใช้ พิมพ์หนึ่งสิ่งที่จะเกิดขึ้นมันเป็น จะพิมพ์หนึ่งสองสามขอโทษ นั่นเป็นชนิดของพฤติกรรมแปลกใช่มั้ย? คุณอาจจะคิดอย่างนั้น แต่มีจริงบางกรณีที่ นี้อาจเป็นสิ่งที่มีประโยชน์สวย ดังนั้นนี่คือตัวอย่างของสวิทช์อีก คำสั่งที่ฉันละเว้นการแบ่ง แต่ผมทำไว้ในวัตถุประสงค์ ดังนั้นสิ่งที่เกิดขึ้นที่นี่? คิดว่าเป็นครั้งที่สอง คุณอาจต้องการที่จะหยุดวิดีโอ สิ่งที่เกิดขึ้นที่นี่หาก ผู้ใช้ชนิดสี่? ดังนั้นผมจึงได้ถามผู้ใช้สำหรับการป้อนข้อมูล และพวกเขาให้ค่า 4 สิ่งที่ได้รับพิมพ์เมื่อผมทำเช่นนั้น? บนภาพนิ่งก่อนหน้านี้มี แบ่งระหว่างทุกกรณี ดังนั้นมันจะเป็นเพียง พิมพ์สี่แล้วหยุด แต่ในกรณีนี้ก็จะไม่ จะเกิดอะไรขึ้นก็คือค​​ุณ จะตกผ่านแต่ละกรณี ดังนั้นในกรณีนี้ผมได้จัดกรณีของฉัน ในลักษณะที่ว่าถ้าผู้ใช้ 4, ฉันจะพิมพ์สี่สาม สองหนึ่งระเบิดออก และถ้าพวกเขาพิมพ์ 5 ฉันจะเริ่มต้น ที่ห้าและทำสิ่งเดียวกัน ถ้าพวกเขาพิมพ์ 1 ผมจะ เพียงแค่ทำอย่างใดอย่างหนึ่งระเบิดออก ดังนั้นในกรณีนี้ผมใช้ สวิทช์ชนิดของชาญฉลาดเพื่อให้ ที่ผมตั้งใจที่จะลดลง ผ่านทุกกรณี แต่โดยทั่วไปแล้วคุณอาจจะ ต้องการที่จะทำลายระหว่างทั้งหมดของพวกเขา จนกว่าคุณจะมีสถานการณ์ เช่นเดียวกับที่คุณนี้ ชนิดของการใช้ประโยชน์จากความจริงที่ว่าคุณจะ ตกผ่านกรณีโดยไม่หยุดพัก เพื่อให้เป็นที่สองของการที่สำคัญ ประเภทงบเงื่อนไข ซึ่งล่าสุดคือ? ดังนั้นผม มีสองตัวอย่างของรหัส C ที่นี่ หนึ่งทางด้านซ้ายและด้านขวา หนึ่งด้านซ้ายควร อาจจะสวยคุ้นเคยกับคุณ ฉันมี Int x และผมอาจจะ ได้ขอให้ผู้ใช้ for-- นี้อาจจะ Int x เท่ากับ GetInt หรือสิ่งที่ต้องการที่ และจากนั้นฉันตัดสินใจ ถ้านิพจน์บูลีนบางอย่าง จริงกำหนดค่า x 5 มิฉะนั้นกำหนดค่า x 6 ที่ด้านซ้ายอาจจะ สวยที่คุ้นเคยจากการสนทนาของเรา ของอื่น ๆ หากรอสักครู่ที่ผ่านมา คุณจะประหลาดใจที่รู้ ว่าเส้นด้านขวา ไม่สิ่งเดียวที่แน่นอน? ดังนั้นนี้เรียกว่า:? หรือบางครั้ง เรียกว่าผู้ประกอบการที่ประกอบไปด้วย และมันก็เป็นเย็นสวย โดยจะใช้มักจะเป็นเคล็ดลับที่น่ารัก แต่สิ่งที่จะช่วยให้คุณทำคือการ จำลองอื่น ๆ หากมีขนาดเล็กจริงๆ จริงๆสั้นนิด ๆ สาขาเงื่อนไข คุณมักจะไม่ใช้: ถ้าคุณ มีหกบรรทัดของรหัสระหว่างแต่ละชุด วงเล็บปีกกาของ แต่ถ้าคุณเพียง การตัดสินใจอย่างรวดเร็ว ถ้าคุณกำลังจะทำสิ่งหนึ่ง หรืออื่น ๆ และมันเป็นเรื่องง่ายมาก นี้อาจจะเป็นตัวอย่างของวิธีการไปยัง ทำมันด้วย: ผู้ประกอบการ ternary ดังนั้น x Int เท่ากับการแสดงออก? หลังจากสิ่งที่คำถาม คือสิ่งที่เครื่องหมาย x ค่า ถ้าจะแสดงออกเป็นความจริง สิ่งที่หลังจาก ลำไส้ใหญ่เป็นสิ่งที่มีค่าของ x จะเป็นอย่างไรถ้าการแสดงออกเป็นของปลอม ดังนั้นผมขอให้ตัวเอง เป็นสำนวนที่ว่าจริงหรือไม่? ถ้าเป็นกำหนดค่า x 5 หากยังไม่ได้กำหนดค่า x 6 อีกครั้งที่ชอบพูดว่า ซึ่งมักจะเป็นเพียงเคล็ดลับที่น่ารัก และบางครั้งถ้าคุณจะกลายเป็น จริงๆสบายกับมัน คุณจะทำเช่นนี้เพราะมันดู ชนิดของเย็นในโปรแกรมของคุณ โดยทั่วไปผมนำเสนอให้ ขณะนี้คุณเพื่อให้คุณคุ้นเคยกับมัน ถ้าคุณเห็นมัน แต่ก็รู้ว่าคุณไม่ได้มี ที่จะเขียนมันในใด ๆ ของรหัสของคุณ แต่มันก็เป็นสิ่งที่จะคุ้นเคยกับ แน่นอนเพราะคุณจะพบ ตัวอย่างของรหัสที่นี่ มีที่นี้: ไวยากรณ์ AKA ประกอบ ternary ที่ถูกนำมาใช้ ดังนั้นสรุปอย่างรวดเร็วใน สิ่งที่เงื่อนไขที่ และสิ่งที่ตัวเลือกที่มีอยู่ ให้คุณในซีหากคุณมีและถ้า-อื่น และถ้าหากอื่น ฯลฯ คุณสามารถใช้นิพจน์บูลีน สำหรับผู้ที่จะทำให้การตัดสินใจ ด้วยงบที่คุณใช้สวิทช์ กรณีที่ไม่ต่อเนื่องในการตัดสินใจ โดยเฉพาะคุณจะพูดว่าถ้ามัน อย่างใดอย่างหนึ่งหรือถ้าเป็นสองหรือถ้ามันเป็นสาม ฉันจะทำสิ่งนี้หรือ สิ่งนี้หรือสิ่งนี้ และ: สามารถที่จะนำมาใช้แทน ง่ายมากถ้า-สาขาอื่น หรือถ้าโซ่-อื่นเพื่อให้ รหัสของคุณดูเล็ก ๆ น้อย ๆ แฟนซี ฉันลอยด์ดั๊ก และนี่คือ CS50