ทั้งหมดขวา
ดังนั้นตอนนี้เราจะมาพูดคุยเกี่ยวกับบางสิ่งบางอย่าง ที่มีประโยชน์จริงๆใน 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