1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 حسنا. 3 00:00:05,640 --> 00:00:08,330 حتى الآن دعونا نتحدث عن شيء من المفيد حقا في programming-- 4 00:00:08,330 --> 00:00:09,914 عبارات شرطية. 5 00:00:09,914 --> 00:00:11,830 التعبيرات الشرطية ذلك سماح للبرامج الخاصة بك 6 00:00:11,830 --> 00:00:14,538 لاتخاذ القرارات واتخاذ مختلفة الشوك في الطريق، شيء 7 00:00:14,538 --> 00:00:17,670 أشرت إليها سابقا قليلا، اعتمادا على قيم المتغيرات، 8 00:00:17,670 --> 00:00:20,990 أو بناء على ما مدخلات المستخدم في مبرمج، في سطر الأوامر، 9 00:00:20,990 --> 00:00:23,130 أو إذا كان لديك موجه أو شيء من هذا القبيل. 10 00:00:23,130 --> 00:00:26,690 C لديها عدة طرق مختلفة ل التعبير عن التعبيرات الشرطية، التي 11 00:00:26,690 --> 00:00:29,911 نحن أيضا في بعض الأحيان سيدعو فرع مشروط في البرامج الخاصة بك. 12 00:00:29,911 --> 00:00:32,910 وبعض هذه ذاهبون للبحث مألوفة جدا لك من نقطة الصفر، 13 00:00:32,910 --> 00:00:35,190 لذلك سنقوم حتى يعيدهم حتى جنبا إلى جنب، فقط 14 00:00:35,190 --> 00:00:38,170 يمكنك جعل هذا التشبيه في رأسك. 15 00:00:38,170 --> 00:00:41,250 >> لذلك، إذا if-- غير جميلة بسيطة مشروطة. 16 00:00:41,250 --> 00:00:43,560 إذا كنت تذكر من الصفر على حق هنا 17 00:00:43,560 --> 00:00:50,000 هل يمكن ملء هذا هو مسدس مع التعبير الأزرق إذا الماوس لأسفل 18 00:00:50,000 --> 00:00:53,010 أو إذا كان x أقل من 10، أو شيء من هذا القبيل. 19 00:00:53,010 --> 00:00:57,390 وبعد ذلك، وكان إذا كان x أقل من 10، أو إذا كان الماوس في الواقع، إلى أسفل، 20 00:00:57,390 --> 00:01:01,140 كافة التعليمات البرمجية داخل أن قطعة اللغز تنفيذ. 21 00:01:01,140 --> 00:01:03,720 كل الأشياء التي تناسب داخل هذا الشكل C. 22 00:01:03,720 --> 00:01:07,200 >> وبالمثل، هل لدينا إذا على اليسار هناك. 23 00:01:07,200 --> 00:01:09,210 إذا تعبير منطقي، الذي أنا فقط باستخدام 24 00:01:09,210 --> 00:01:13,010 كبديل لأحد منطقية تعبيرات ناقشنا سابقا، 25 00:01:13,010 --> 00:01:15,240 متعرج مفتوحة، بالقرب متعرج. 26 00:01:15,240 --> 00:01:17,720 حتى التفكير في مجعد مفتوحة قوس ومتعرج مغلقة 27 00:01:17,720 --> 00:01:22,720 كنوع من مماثلة لشطيرة تأثير إذا كتلة على الحق 28 00:01:22,720 --> 00:01:24,070 من البداية. 29 00:01:24,070 --> 00:01:28,680 >> إذا كان تعبير منطقي في حال بيان غير صحيح، 30 00:01:28,680 --> 00:01:30,900 ثم كل سطر من الكود بين الأقواس المجعدة 31 00:01:30,900 --> 00:01:33,870 سيتم تنفيذ من أجل من أعلى إلى أسفل. 32 00:01:33,870 --> 00:01:35,700 إذا كان تعبير منطقي غير صحيح، وسوف نقوم 33 00:01:35,700 --> 00:01:38,610 تخطي بين في كل شيء الأقواس المعقوفة، لأننا فقط 34 00:01:38,610 --> 00:01:44,570 تريد أن تسلك هذا مفترق طرق إذا كان تعبير منطقي هو الصحيح. 35 00:01:44,570 --> 00:01:48,540 >> يمكننا اتخاذ هذه الخطوة واحدة مع مزيد من عدا ذلك. 36 00:01:48,540 --> 00:01:50,820 لذلك هذا هو كتلة خدش مشابهة جدا لتلك التي 37 00:01:50,820 --> 00:01:55,884 شاهدنا قبل ثانية فقط، فيما عدا فإنه يأخذ مسارين مختلفة بناء 38 00:01:55,884 --> 00:01:56,550 على ما يحدث. 39 00:01:56,550 --> 00:02:00,420 حتى إذا كان الماوس لأسفل، أو إذا كان x كان أقل من 10، 40 00:02:00,420 --> 00:02:04,780 سنفعل كل ما هو بين بين أن شوكة الأول، أن أول C.، 41 00:02:04,780 --> 00:02:08,430 >> خلاف ذلك، إذا كان الماوس يصل، أو x هو ليس أقل من 10، 42 00:02:08,430 --> 00:02:10,460 وسوف نفعل كل شيء في المجموعة الثانية. 43 00:02:10,460 --> 00:02:15,010 وهذا مشابه لما تراه هنا لC. إذا منطقية التعبير، 44 00:02:15,010 --> 00:02:17,910 تفعل الاشياء بين أول مجموعة من الأقواس المعقوفة. 45 00:02:17,910 --> 00:02:20,550 آخر، تفعل الاشياء بين المجموعة الثانية من الأقواس المعقوفة. 46 00:02:20,550 --> 00:02:22,080 لذلك إذا كانت منطقية التعبير هو الصحيح، وسوف نقوم 47 00:02:22,080 --> 00:02:23,580 تفعل كل ما هو بين المجموعة الأولى. 48 00:02:23,580 --> 00:02:27,480 إذا كان تعبير منطقي هو كاذبة، من شأنها أن تؤدي إلى شيء، 49 00:02:27,480 --> 00:02:30,100 ونحن سوف نفعل كل ما في المجموعة الثانية من الأقواس المعقوفة. 50 00:02:30,100 --> 00:02:34,190 مرة أخرى، من أعلى إلى أسفل، كل خطوط في فترة ما بين الأقواس. 51 00:02:34,190 --> 00:02:38,130 >> في C، فمن الممكن لخلق وإذا غيرك سلسلة لو غيرك. 52 00:02:38,130 --> 00:02:42,000 في الواقع يمكن أن يكون لديك إذا، الا اذا غيرك إذا، آخر، إذا، وهلم جرا وهلم جرا وهكذا 53 00:02:42,000 --> 00:02:42,720 على. 54 00:02:42,720 --> 00:02:44,660 في خدش، وهذا مطلوب تداخل الكتل. 55 00:02:44,660 --> 00:02:48,280 يمكنك إضافة آخر إذا، وكان لديك ل وضع واحد آخر داخل آخر، 56 00:02:48,280 --> 00:02:51,110 وهلم جرا، وأنها حصلت على نوع من متداخلة ومعقدة. 57 00:02:51,110 --> 00:02:52,450 لكن C، ليس لدينا للقيام بذلك. 58 00:02:52,450 --> 00:02:55,300 يمكننا فعلا فقط أن يكون سلسلة من هذا القبيل. 59 00:02:55,300 --> 00:02:58,350 مرة أخرى، كما قد تتوقع، كل من هذه الفروع هي يستبعد بعضها بعضا. 60 00:02:58,350 --> 00:03:00,750 يمكنك فقط يذهب من أي وقت مضى واحد لأسفل للفرع. 61 00:03:00,750 --> 00:03:02,270 إذا كان هذا صحيحا. 62 00:03:02,270 --> 00:03:03,930 خلاف ذلك، إذا كان هذا صحيحا. 63 00:03:03,930 --> 00:03:05,700 خلاف ذلك، إذا كان هذا صحيحا. 64 00:03:05,700 --> 00:03:07,120 خلاف ذلك، قيام بذلك. 65 00:03:07,120 --> 00:03:11,010 لذلك كل أربعة فروع في هذه سبيل المثال لا يجتمعان. 66 00:03:11,010 --> 00:03:14,900 انها سلسلة إذا، الا اذا غيرك. 67 00:03:14,900 --> 00:03:17,580 >> فمن الممكن رغم ذلك، وأحيانا مفيدة للغاية، 68 00:03:17,580 --> 00:03:20,950 لإنشاء سلسلة من لا فروع يستبعد بعضها بعضا. 69 00:03:20,950 --> 00:03:24,600 في هذا المثال، فقط الثالث و فروع الرابعة هي يستبعد بعضها بعضا. 70 00:03:24,600 --> 00:03:27,450 يمكن أن يكون ذلك هل يمكن تلبية الشرط الأول، 71 00:03:27,450 --> 00:03:29,396 وكنت قد ترضي الشرط الثاني، 72 00:03:29,396 --> 00:03:31,770 وكنت قد ترضي condition-- الثالث في هذه الحالة 73 00:03:31,770 --> 00:03:35,270 كنت السير في الفرع الأول، ثم تذهب إلى أسفل الفرع الثاني، 74 00:03:35,270 --> 00:03:37,000 ثم لك أن تذهب إلى أسفل الفرع الثالث. 75 00:03:37,000 --> 00:03:40,450 أو ربما كنت تلبية أولا الشرط، والشرط الثاني، 76 00:03:40,450 --> 00:03:42,770 ولكنك لا يرضي الشرط الثالث. 77 00:03:42,770 --> 00:03:46,230 في هذه الحالة تذهب إلى أسفل أولا فرع والفرع الثاني، 78 00:03:46,230 --> 00:03:48,040 ثم فرع الرابع، 79 00:03:48,040 --> 00:03:51,392 >> والسبب في ذلك هو أن آخر وربط فقط إلى أقرب إذا. 80 00:03:51,392 --> 00:03:53,100 ذلك على الرغم من هناك وآخر هنا، أن 81 00:03:53,100 --> 00:03:56,490 لا يخلق بالضرورة متبادل سلسلة حصرية من كل شيء. 82 00:03:56,490 --> 00:04:00,890 انها فقط التعبير هناك مع منطقية 83 00:04:00,890 --> 00:04:05,040 التعبير 3-- هذا هو المتنافية مع آخر. 84 00:04:05,040 --> 00:04:07,580 ولذلك فمن الممكن، و في بعض الأحيان مفيدة للغاية، 85 00:04:07,580 --> 00:04:11,772 كما قلت، لإنشاء سلسلة من فروع لا يستبعد بعضها بعضا. 86 00:04:11,772 --> 00:04:14,230 دعونا نلقي نظرة على مختلف نوع من الشرطي، الذي 87 00:04:14,230 --> 00:04:17,392 أنت لم تشاهد من قبل في خدش. 88 00:04:17,392 --> 00:04:19,369 هناك شيء يسمى بيان التبديل. 89 00:04:19,369 --> 00:04:21,410 بيان التبديل نوع من أنيق لأنه 90 00:04:21,410 --> 00:04:25,930 بيان الشرطية التي تسمح لك بتحديد الحالات متميزة، 91 00:04:25,930 --> 00:04:28,926 بدلا من الاعتماد على منطقية تعبيرات لاتخاذ القرارات بالنسبة لك. 92 00:04:28,926 --> 00:04:31,050 هكذا على سبيل المثال، دعونا نقول أن لدي هذا البرنامج، 93 00:04:31,050 --> 00:04:34,110 وأنا أسأل المستخدم لتوفير المدخلات بالنسبة لي. 94 00:04:34,110 --> 00:04:37,170 لذلك أنا أقول، الباحث س = احصل على كثافة العمليات ()، وإذا كنت لم تكن مألوفة حتى الآن، 95 00:04:37,170 --> 00:04:40,190 الحصول على كثافة العمليات هي وظيفة هذا هو وشملت أيضا في مكتبة CS50، 96 00:04:40,190 --> 00:04:44,610 لذلك إذا كنت # تضمين CS50.H سيكون لديك الوصول إلى الحصول كثافة العمليات () وجميع ما لديه 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat، GetString، وهلم جرا. 98 00:04:46,840 --> 00:04:52,590 في الأساس واحدة احصل على وظيفة لكل نوع البيانات التي ناقشناه بالفعل. 99 00:04:52,590 --> 00:04:53,970 >> حتى كثافة العمليات س يساوي GetInt. 100 00:04:53,970 --> 00:04:56,390 أساسا ما يحدث هو أنا في المحطة. 101 00:04:56,390 --> 00:04:58,790 أنا يطلب من المستخدم لكتابة رقم. 102 00:04:58,790 --> 00:05:02,300 >> وهنا أنا التحول ما أفعله، اعتمادا 103 00:05:02,300 --> 00:05:05,060 على ما كتبته المستخدم في موجه. 104 00:05:05,060 --> 00:05:09,147 حتى لو كتبوا واحد، وطباعة واحدة. 105 00:05:09,147 --> 00:05:09,855 وبعد ذلك كسر. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 إذا كانت من النوع الثاني، وطباعة اثنين. 108 00:05:15,510 --> 00:05:16,690 وبعد ذلك كسر. 109 00:05:16,690 --> 00:05:19,060 من المهم أن كسر بين كل حالة 110 00:05:19,060 --> 00:05:20,890 لأن خلاف ذلك سوف لكم من خلال الانخفاض. 111 00:05:20,890 --> 00:05:23,380 حتى لو لم يكن لديهم أي فواصل هناك، والمستخدم 112 00:05:23,380 --> 00:05:31,380 واحد المكتوب، ماذا سيحدث هو عليه سوف تطبع واحد، اثنان، ثلاثة، آسف. 113 00:05:31,380 --> 00:05:33,099 هذا النوع من السلوك غريب، أليس كذلك؟ 114 00:05:33,099 --> 00:05:33,890 قد تعتقد ذلك. 115 00:05:33,890 --> 00:05:36,480 ولكن هناك في الواقع بعض الحالات التي يكون فيها وهذا يمكن أن يكون أمرا مفيدا جدا. 116 00:05:36,480 --> 00:05:39,730 حتى هنا مثال آخر على التبديل بيان أين أنا حذفت فواصل. 117 00:05:39,730 --> 00:05:42,030 ولكن أفعل ذلك عن قصد. 118 00:05:42,030 --> 00:05:43,030 >> فما يحدث هنا؟ 119 00:05:43,030 --> 00:05:43,821 اعتقد لفترة ثانية. 120 00:05:43,821 --> 00:05:45,960 قد تحتاج حتى إلى وقفة الفيديو. 121 00:05:45,960 --> 00:05:48,230 >> ما يحدث هنا إذا أنواع المستخدم الأربعة؟ 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 حتى لقد طلبت من المستخدم إدخال. 124 00:05:53,860 --> 00:05:56,560 وأنها توفر قيمة 4. 125 00:05:56,560 --> 00:05:59,545 ما يحصل المطبوعة عندما أفعل ذلك؟ 126 00:05:59,545 --> 00:06:02,170 على الشريحة السابقة، كانت هناك فواصل بين جميع الحالات. 127 00:06:02,170 --> 00:06:04,750 وذلك من شأنه فقط طباعة أربعة، ثم توقف. 128 00:06:04,750 --> 00:06:06,610 ولكن في هذه الحالة، فإنه لا. 129 00:06:06,610 --> 00:06:10,700 ما سيحدث هو لك ستسقط من خلال كل حالة. 130 00:06:10,700 --> 00:06:14,890 >> حتى في هذه الحالة لقد نظمت الحالات بلدي في مثل هذه الطريقة أنه إذا قام المستخدم بكتابة 4، 131 00:06:14,890 --> 00:06:20,070 وسوف طباعة أربعة، ثلاثة، اثنين، واحد، ينطلق. 132 00:06:20,070 --> 00:06:22,780 وإذا كانت كتبته 5، وأود أن تبدأ في خمسة وتفعل الشيء نفسه. 133 00:06:22,780 --> 00:06:26,410 لو كتبوا 1، وأود أن قيام واحد فقط، والانفجار قبالة. 134 00:06:26,410 --> 00:06:28,715 >> حتى في هذه الحالة، أنا باستخدام تبديل نوع ذكي جدا 135 00:06:28,715 --> 00:06:30,804 أنني لا أنوي أن تقع من خلال جميع الحالات. 136 00:06:30,804 --> 00:06:33,720 ولكن بشكل عام ربما كنت ستعمل تريد كسر بين كل منهم، 137 00:06:33,720 --> 00:06:36,090 إلا إذا كان لديك حالة هذا مثل واحد حيث كنت 138 00:06:36,090 --> 00:06:40,081 نوع من الاستفادة من حقيقة أن عليك تقع من خلال الحالات دون انقطاع. 139 00:06:40,081 --> 00:06:42,830 لذلك هذا هو الثاني من التخصص أنواع البيانات الشرطية. 140 00:06:42,830 --> 00:06:47,139 وآخرها هو: لذلك أنا دينا اثنين من قصاصات من التعليمات البرمجية C هنا. 141 00:06:47,139 --> 00:06:48,680 واحد على اليسار واحد على اليمين. 142 00:06:48,680 --> 00:06:52,330 واحد على اليسار يجب أن ربما تكون مألوفة جدا لك. 143 00:06:52,330 --> 00:06:55,110 >> لدي كثافة العمليات س. 144 00:06:55,110 --> 00:06:57,167 وربما ينبغي لي أن وقد طلبت من المستخدم 145 00:06:57,167 --> 00:07:00,250 for-- هذا ينبغي ان يكون كثافة العمليات س يساوي GetInt، أو شيء من هذا القبيل. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 ثم أنا اتخاذ أي قرار. 148 00:07:05,240 --> 00:07:11,700 وإذا كان بعض تعبير منطقي هو صحيح، تعيين × قيمة 5. 149 00:07:11,700 --> 00:07:13,590 خلاف ذلك، تعيين × قيمة 6. 150 00:07:13,590 --> 00:07:16,548 >> التي على اليسار يجب أن تكون على الأرجح مألوفة جدا من مناقشتنا 151 00:07:16,548 --> 00:07:18,160 من عدا ذلك منذ لحظة فقط. 152 00:07:18,160 --> 00:07:20,535 سوف يفاجأ أن تعرف ان الخط على اليمين 153 00:07:20,535 --> 00:07:22,310 يفعل الشيء نفسه بالضبط؟ 154 00:07:22,310 --> 00:07:26,140 >> لذلك وهذا ما يسمى:؟ أو في بعض الأحيان دعا المشغل الثلاثي. 155 00:07:26,140 --> 00:07:27,450 وانها باردة جدا. 156 00:07:27,450 --> 00:07:29,110 انها تستخدم عادة بأنه خدعة لطيف. 157 00:07:29,110 --> 00:07:35,777 >> ولكن ما يسمح لها أنت القيام به هو محاكاة عدا ذلك مع صغيرة حقا، 158 00:07:35,777 --> 00:07:37,610 حقا قصيرة بشكل مسلي فروع المشروطة. 159 00:07:37,610 --> 00:07:41,470 كنت عادة لا تستخدم: إذا كنت وكان ستة أسطر من التعليمات البرمجية بين كل مجموعة 160 00:07:41,470 --> 00:07:42,569 الأقواس من مجعد. 161 00:07:42,569 --> 00:07:44,360 ولكن إذا كنت فقط اتخاذ قرار سريع، 162 00:07:44,360 --> 00:07:47,520 إذا كنت تنوي القيام به شيء واحد أو الآخر، والأمر في غاية البساطة، 163 00:07:47,520 --> 00:07:52,240 هذا قد يكون مثالا على كيفية تفعل ذلك مع: المشغل الثلاثي. 164 00:07:52,240 --> 00:07:56,940 حتى كثافة العمليات س يساوي التعبير؟ 165 00:07:56,940 --> 00:07:59,470 الشيء بعد السؤال علامة ما إكس القيمة 166 00:07:59,470 --> 00:08:02,690 سيكون في حالة التعبير هو الصحيح. 167 00:08:02,690 --> 00:08:05,330 >> الشيء بعد القولون هو ما قيمة س ل 168 00:08:05,330 --> 00:08:07,990 سيكون إذا كان التعبير كاذبة. 169 00:08:07,990 --> 00:08:11,510 لذلك أنا أسأل نفسي، هو تعبير صحيح؟ 170 00:08:11,510 --> 00:08:13,870 إذا كان كذلك، تعيين × قيمة 5. 171 00:08:13,870 --> 00:08:16,619 إذا لم تكن كذلك، تعيين × قيمة 6. 172 00:08:16,619 --> 00:08:17,410 قلت مرة أخرى مثل. 173 00:08:17,410 --> 00:08:18,670 هذا عادة ما يكون مجرد خدعة لطيف. 174 00:08:18,670 --> 00:08:20,430 وأحيانا إذا أصبحت حقا مريحة مع ذلك، 175 00:08:20,430 --> 00:08:22,820 عليك أن تفعل هذا لأنها تبدو نوع من باردة في البرامج الخاصة بك. 176 00:08:22,820 --> 00:08:25,710 عموما أنا تقديمه ل أنت الآن لذلك كنت على دراية به 177 00:08:25,710 --> 00:08:26,990 إذا كنت ترى ذلك. 178 00:08:26,990 --> 00:08:30,080 ولكن بالتأكيد أعلم أنك لا تملك لأنه يكتب في أي من التعليمات البرمجية. 179 00:08:30,080 --> 00:08:33,246 ولكن هذا شيء ليكون على دراية، لأنك سوف تواجه بالتأكيد 180 00:08:33,246 --> 00:08:36,130 قصاصات من التعليمات البرمجية هنا و هناك حيث هذا: لغوي، 181 00:08:36,130 --> 00:08:39,120 AKA المشغل الثلاثي، ويستخدم. 182 00:08:39,120 --> 00:08:40,960 >> ملخص سريع هلم جرا ما هي الشرطية، 183 00:08:40,960 --> 00:08:44,210 وما هي الخيارات المتاحة لك في C. لديك إذا وإذا غيرك، 184 00:08:44,210 --> 00:08:46,860 وإذا آخر إذا، وهلم جرا. 185 00:08:46,860 --> 00:08:50,880 يمكنك استخدام تعبيرات منطقية لمن لاتخاذ القرارات. 186 00:08:50,880 --> 00:08:53,720 >> مع البيانات التبديل استخدام حالات منفصلة لاتخاذ القرارات. 187 00:08:53,720 --> 00:08:57,540 هل نقول على وجه التحديد، ما اذا كان واحد، أو إذا كان اثنين، أو إذا كان الثلاثة، 188 00:08:57,540 --> 00:09:00,870 سأفعل هذا الشيء، أو هذا الشيء أو هذا الشيء. 189 00:09:00,870 --> 00:09:04,660 و: يمكن أن تستخدم لتحل محل بسيطة جدا فروع لو غيرك، 190 00:09:04,660 --> 00:09:08,490 أو إذا غيرك سلاسل لجعل كود مظهرك قليلا الهوى. 191 00:09:08,490 --> 00:09:09,250 >> أنا دوغ ويد. 192 00:09:09,250 --> 00:09:11,410 وهذا هو CS50. 193 00:09:11,410 --> 00:09:12,959