حسنا. حتى الآن دعونا نتحدث عن شيء من المفيد حقا في programming-- عبارات شرطية. التعبيرات الشرطية ذلك سماح للبرامج الخاصة بك لاتخاذ القرارات واتخاذ مختلفة الشوك في الطريق، شيء أشرت إليها سابقا قليلا، اعتمادا على قيم المتغيرات، أو بناء على ما مدخلات المستخدم في مبرمج، في سطر الأوامر، أو إذا كان لديك موجه أو شيء من هذا القبيل. C لديها عدة طرق مختلفة ل التعبير عن التعبيرات الشرطية، التي نحن أيضا في بعض الأحيان سيدعو فرع مشروط في البرامج الخاصة بك. وبعض هذه ذاهبون للبحث مألوفة جدا لك من نقطة الصفر، لذلك سنقوم حتى يعيدهم حتى جنبا إلى جنب، فقط يمكنك جعل هذا التشبيه في رأسك. لذلك، إذا if-- غير جميلة بسيطة مشروطة. إذا كنت تذكر من الصفر على حق هنا هل يمكن ملء هذا هو مسدس مع التعبير الأزرق إذا الماوس لأسفل أو إذا كان x أقل من 10، أو شيء من هذا القبيل. وبعد ذلك، وكان إذا كان x أقل من 10، أو إذا كان الماوس في الواقع، إلى أسفل، كافة التعليمات البرمجية داخل أن قطعة اللغز تنفيذ. كل الأشياء التي تناسب داخل هذا الشكل C. وبالمثل، هل لدينا إذا على اليسار هناك. إذا تعبير منطقي، الذي أنا فقط باستخدام كبديل لأحد منطقية تعبيرات ناقشنا سابقا، متعرج مفتوحة، بالقرب متعرج. حتى التفكير في مجعد مفتوحة قوس ومتعرج مغلقة كنوع من مماثلة لشطيرة تأثير إذا كتلة على الحق من البداية. إذا كان تعبير منطقي في حال بيان غير صحيح، ثم كل سطر من الكود بين الأقواس المجعدة سيتم تنفيذ من أجل من أعلى إلى أسفل. إذا كان تعبير منطقي غير صحيح، وسوف نقوم تخطي بين في كل شيء الأقواس المعقوفة، لأننا فقط تريد أن تسلك هذا مفترق طرق إذا كان تعبير منطقي هو الصحيح. يمكننا اتخاذ هذه الخطوة واحدة مع مزيد من عدا ذلك. لذلك هذا هو كتلة خدش مشابهة جدا لتلك التي شاهدنا قبل ثانية فقط، فيما عدا فإنه يأخذ مسارين مختلفة بناء على ما يحدث. حتى إذا كان الماوس لأسفل، أو إذا كان x كان أقل من 10، سنفعل كل ما هو بين بين أن شوكة الأول، أن أول C.، خلاف ذلك، إذا كان الماوس يصل، أو x هو ليس أقل من 10، وسوف نفعل كل شيء في المجموعة الثانية. وهذا مشابه لما تراه هنا لC. إذا منطقية التعبير، تفعل الاشياء بين أول مجموعة من الأقواس المعقوفة. آخر، تفعل الاشياء بين المجموعة الثانية من الأقواس المعقوفة. لذلك إذا كانت منطقية التعبير هو الصحيح، وسوف نقوم تفعل كل ما هو بين المجموعة الأولى. إذا كان تعبير منطقي هو كاذبة، من شأنها أن تؤدي إلى شيء، ونحن سوف نفعل كل ما في المجموعة الثانية من الأقواس المعقوفة. مرة أخرى، من أعلى إلى أسفل، كل خطوط في فترة ما بين الأقواس. في C، فمن الممكن لخلق وإذا غيرك سلسلة لو غيرك. في الواقع يمكن أن يكون لديك إذا، الا اذا غيرك إذا، آخر، إذا، وهلم جرا وهلم جرا وهكذا على. في خدش، وهذا مطلوب تداخل الكتل. يمكنك إضافة آخر إذا، وكان لديك ل وضع واحد آخر داخل آخر، وهلم جرا، وأنها حصلت على نوع من متداخلة ومعقدة. لكن C، ليس لدينا للقيام بذلك. يمكننا فعلا فقط أن يكون سلسلة من هذا القبيل. مرة أخرى، كما قد تتوقع، كل من هذه الفروع هي يستبعد بعضها بعضا. يمكنك فقط يذهب من أي وقت مضى واحد لأسفل للفرع. إذا كان هذا صحيحا. خلاف ذلك، إذا كان هذا صحيحا. خلاف ذلك، إذا كان هذا صحيحا. خلاف ذلك، قيام بذلك. لذلك كل أربعة فروع في هذه سبيل المثال لا يجتمعان. انها سلسلة إذا، الا اذا غيرك. فمن الممكن رغم ذلك، وأحيانا مفيدة للغاية، لإنشاء سلسلة من لا فروع يستبعد بعضها بعضا. في هذا المثال، فقط الثالث و فروع الرابعة هي يستبعد بعضها بعضا. يمكن أن يكون ذلك هل يمكن تلبية الشرط الأول، وكنت قد ترضي الشرط الثاني، وكنت قد ترضي condition-- الثالث في هذه الحالة كنت السير في الفرع الأول، ثم تذهب إلى أسفل الفرع الثاني، ثم لك أن تذهب إلى أسفل الفرع الثالث. أو ربما كنت تلبية أولا الشرط، والشرط الثاني، ولكنك لا يرضي الشرط الثالث. في هذه الحالة تذهب إلى أسفل أولا فرع والفرع الثاني، ثم فرع الرابع، والسبب في ذلك هو أن آخر وربط فقط إلى أقرب إذا. ذلك على الرغم من هناك وآخر هنا، أن لا يخلق بالضرورة متبادل سلسلة حصرية من كل شيء. انها فقط التعبير هناك مع منطقية التعبير 3-- هذا هو المتنافية مع آخر. ولذلك فمن الممكن، و في بعض الأحيان مفيدة للغاية، كما قلت، لإنشاء سلسلة من فروع لا يستبعد بعضها بعضا. دعونا نلقي نظرة على مختلف نوع من الشرطي، الذي أنت لم تشاهد من قبل في خدش. هناك شيء يسمى بيان التبديل. بيان التبديل نوع من أنيق لأنه بيان الشرطية التي تسمح لك بتحديد الحالات متميزة، بدلا من الاعتماد على منطقية تعبيرات لاتخاذ القرارات بالنسبة لك. هكذا على سبيل المثال، دعونا نقول أن لدي هذا البرنامج، وأنا أسأل المستخدم لتوفير المدخلات بالنسبة لي. لذلك أنا أقول، الباحث س = احصل على كثافة العمليات ()، وإذا كنت لم تكن مألوفة حتى الآن، الحصول على كثافة العمليات هي وظيفة هذا هو وشملت أيضا في مكتبة CS50، لذلك إذا كنت # تضمين CS50.H سيكون لديك الوصول إلى الحصول كثافة العمليات () وجميع ما لديه cousins-- GetFloat، GetString، وهلم جرا. في الأساس واحدة احصل على وظيفة لكل نوع البيانات التي ناقشناه بالفعل. حتى كثافة العمليات س يساوي GetInt. أساسا ما يحدث هو أنا في المحطة. أنا يطلب من المستخدم لكتابة رقم. وهنا أنا التحول ما أفعله، اعتمادا على ما كتبته المستخدم في موجه. حتى لو كتبوا واحد، وطباعة واحدة. وبعد ذلك كسر. إذا كانت من النوع الثاني، وطباعة اثنين. وبعد ذلك كسر. من المهم أن كسر بين كل حالة لأن خلاف ذلك سوف لكم من خلال الانخفاض. حتى لو لم يكن لديهم أي فواصل هناك، والمستخدم واحد المكتوب، ماذا سيحدث هو عليه سوف تطبع واحد، اثنان، ثلاثة، آسف. هذا النوع من السلوك غريب، أليس كذلك؟ قد تعتقد ذلك. ولكن هناك في الواقع بعض الحالات التي يكون فيها وهذا يمكن أن يكون أمرا مفيدا جدا. حتى هنا مثال آخر على التبديل بيان أين أنا حذفت فواصل. ولكن أفعل ذلك عن قصد. فما يحدث هنا؟ اعتقد لفترة ثانية. قد تحتاج حتى إلى وقفة الفيديو. ما يحدث هنا إذا أنواع المستخدم الأربعة؟ حتى لقد طلبت من المستخدم إدخال. وأنها توفر قيمة 4. ما يحصل المطبوعة عندما أفعل ذلك؟ على الشريحة السابقة، كانت هناك فواصل بين جميع الحالات. وذلك من شأنه فقط طباعة أربعة، ثم توقف. ولكن في هذه الحالة، فإنه لا. ما سيحدث هو لك ستسقط من خلال كل حالة. حتى في هذه الحالة لقد نظمت الحالات بلدي في مثل هذه الطريقة أنه إذا قام المستخدم بكتابة 4، وسوف طباعة أربعة، ثلاثة، اثنين، واحد، ينطلق. وإذا كانت كتبته 5، وأود أن تبدأ في خمسة وتفعل الشيء نفسه. لو كتبوا 1، وأود أن قيام واحد فقط، والانفجار قبالة. حتى في هذه الحالة، أنا باستخدام تبديل نوع ذكي جدا أنني لا أنوي أن تقع من خلال جميع الحالات. ولكن بشكل عام ربما كنت ستعمل تريد كسر بين كل منهم، إلا إذا كان لديك حالة هذا مثل واحد حيث كنت نوع من الاستفادة من حقيقة أن عليك تقع من خلال الحالات دون انقطاع. لذلك هذا هو الثاني من التخصص أنواع البيانات الشرطية. وآخرها هو: لذلك أنا دينا اثنين من قصاصات من التعليمات البرمجية C هنا. واحد على اليسار واحد على اليمين. واحد على اليسار يجب أن ربما تكون مألوفة جدا لك. لدي كثافة العمليات س. وربما ينبغي لي أن وقد طلبت من المستخدم for-- هذا ينبغي ان يكون كثافة العمليات س يساوي GetInt، أو شيء من هذا القبيل. ثم أنا اتخاذ أي قرار. وإذا كان بعض تعبير منطقي هو صحيح، تعيين × قيمة 5. خلاف ذلك، تعيين × قيمة 6. التي على اليسار يجب أن تكون على الأرجح مألوفة جدا من مناقشتنا من عدا ذلك منذ لحظة فقط. سوف يفاجأ أن تعرف ان الخط على اليمين يفعل الشيء نفسه بالضبط؟ لذلك وهذا ما يسمى:؟ أو في بعض الأحيان دعا المشغل الثلاثي. وانها باردة جدا. انها تستخدم عادة بأنه خدعة لطيف. ولكن ما يسمح لها أنت القيام به هو محاكاة عدا ذلك مع صغيرة حقا، حقا قصيرة بشكل مسلي فروع المشروطة. كنت عادة لا تستخدم: إذا كنت وكان ستة أسطر من التعليمات البرمجية بين كل مجموعة الأقواس من مجعد. ولكن إذا كنت فقط اتخاذ قرار سريع، إذا كنت تنوي القيام به شيء واحد أو الآخر، والأمر في غاية البساطة، هذا قد يكون مثالا على كيفية تفعل ذلك مع: المشغل الثلاثي. حتى كثافة العمليات س يساوي التعبير؟ الشيء بعد السؤال علامة ما إكس القيمة سيكون في حالة التعبير هو الصحيح. الشيء بعد القولون هو ما قيمة س ل سيكون إذا كان التعبير كاذبة. لذلك أنا أسأل نفسي، هو تعبير صحيح؟ إذا كان كذلك، تعيين × قيمة 5. إذا لم تكن كذلك، تعيين × قيمة 6. قلت مرة أخرى مثل. هذا عادة ما يكون مجرد خدعة لطيف. وأحيانا إذا أصبحت حقا مريحة مع ذلك، عليك أن تفعل هذا لأنها تبدو نوع من باردة في البرامج الخاصة بك. عموما أنا تقديمه ل أنت الآن لذلك كنت على دراية به إذا كنت ترى ذلك. ولكن بالتأكيد أعلم أنك لا تملك لأنه يكتب في أي من التعليمات البرمجية. ولكن هذا شيء ليكون على دراية، لأنك سوف تواجه بالتأكيد قصاصات من التعليمات البرمجية هنا و هناك حيث هذا: لغوي، AKA المشغل الثلاثي، ويستخدم. ملخص سريع هلم جرا ما هي الشرطية، وما هي الخيارات المتاحة لك في C. لديك إذا وإذا غيرك، وإذا آخر إذا، وهلم جرا. يمكنك استخدام تعبيرات منطقية لمن لاتخاذ القرارات. مع البيانات التبديل استخدام حالات منفصلة لاتخاذ القرارات. هل نقول على وجه التحديد، ما اذا كان واحد، أو إذا كان اثنين، أو إذا كان الثلاثة، سأفعل هذا الشيء، أو هذا الشيء أو هذا الشيء. و: يمكن أن تستخدم لتحل محل بسيطة جدا فروع لو غيرك، أو إذا غيرك سلاسل لجعل كود مظهرك قليلا الهوى. أنا دوغ ويد. وهذا هو CS50.