1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Baiklah. 3 00:00:05,640 --> 00:00:08,330 Jadi sekarang mari kita bicara tentang sesuatu benar-benar berguna dalam programming-- 4 00:00:08,330 --> 00:00:09,914 pernyataan bersyarat. 5 00:00:09,914 --> 00:00:11,830 Ekspresi kondisional sehingga memungkinkan program Anda 6 00:00:11,830 --> 00:00:14,538 untuk membuat keputusan dan mengambil yang berbeda garpu di jalan, sesuatu 7 00:00:14,538 --> 00:00:17,670 Saya singgung sedikit lebih awal, tergantung pada nilai-nilai variabel, 8 00:00:17,670 --> 00:00:20,990 atau berdasarkan apa yang input pengguna di programmer, pada baris perintah, 9 00:00:20,990 --> 00:00:23,130 atau jika Anda memiliki prompt atau semacam itu. 10 00:00:23,130 --> 00:00:26,690 C memiliki beberapa cara yang berbeda untuk mengungkapkan ekspresi kondisional, yang 11 00:00:26,690 --> 00:00:29,911 kami juga kadang-kadang akan memanggil cabang kondisional dalam program Anda. 12 00:00:29,911 --> 00:00:32,910 Dan beberapa di antaranya akan melihat cukup akrab bagi Anda dari awal, 13 00:00:32,910 --> 00:00:35,190 jadi kita bahkan akan menarik mereka up berdampingan, hanya 14 00:00:35,190 --> 00:00:38,170 Anda dapat membuat analogi di kepala Anda. 15 00:00:38,170 --> 00:00:41,250 >> Jadi, jika if-- adalah cukup sederhana bersyarat. 16 00:00:41,250 --> 00:00:43,560 Jika Anda ingat dari goresan di sini 17 00:00:43,560 --> 00:00:50,000 Anda bisa mengisi yang heksagon dengan ekspresi biru jika mouse ke bawah 18 00:00:50,000 --> 00:00:53,010 atau jika x kurang dari 10, atau semacam itu. 19 00:00:53,010 --> 00:00:57,390 Dan kemudian, jika x kurang dari 10, atau jika mouse sebenarnya, bawah, 20 00:00:57,390 --> 00:01:01,140 semua kode dalam dari potongan puzzle akan mengeksekusi. 21 00:01:01,140 --> 00:01:03,720 Semua hal-hal yang sesuai dalam yang berbentuk C. 22 00:01:03,720 --> 00:01:07,200 >> Demikian pula, kita harus jika di sebelah kiri ada. 23 00:01:07,200 --> 00:01:09,210 Jika ekspresi Boolean, yang aku hanya menggunakan 24 00:01:09,210 --> 00:01:13,010 sebagai pengganti salah satu Boolean ekspresi sebelumnya kita bahas, 25 00:01:13,010 --> 00:01:15,240 penjepit keriting terbuka, dekat penjepit keriting. 26 00:01:15,240 --> 00:01:17,720 Jadi pikirkan keriting terbuka brace dan brace keriting tertutup 27 00:01:17,720 --> 00:01:22,720 sebagai semacam analog dengan sandwich efek jika blok di sebelah kanan 28 00:01:22,720 --> 00:01:24,070 dari awal. 29 00:01:24,070 --> 00:01:28,680 >> Jika ekspresi Boolean dalam jika pernyataan itu benar, 30 00:01:28,680 --> 00:01:30,900 maka semua baris kode antara kurung kurawal 31 00:01:30,900 --> 00:01:33,870 akan mengeksekusi dalam rangka dari atas ke bawah. 32 00:01:33,870 --> 00:01:35,700 Jika ekspresi Boolean adalah palsu, kita akan 33 00:01:35,700 --> 00:01:38,610 melewatkan segala sesuatu di antara kurung kurawal, karena kita hanya 34 00:01:38,610 --> 00:01:44,570 ingin turun garpu yang di jalan jika ekspresi Boolean benar. 35 00:01:44,570 --> 00:01:48,540 >> Kita bisa mengambil satu langkah lebih lanjut dengan jika lain. 36 00:01:48,540 --> 00:01:50,820 Jadi blok Scratch ini sangat mirip dengan yang 37 00:01:50,820 --> 00:01:55,884 kami melihat hanya satu detik lalu, kecuali dibutuhkan dua jalan yang berbeda berdasarkan 38 00:01:55,884 --> 00:01:56,550 pada apa yang terjadi. 39 00:01:56,550 --> 00:02:00,420 Jadi jika mouse turun, atau jika x kurang dari 10, 40 00:02:00,420 --> 00:02:04,780 kami akan melakukan segala sesuatu yang ada di antara bahwa garpu pertama, yang pertama C, 41 00:02:04,780 --> 00:02:08,430 >> Jika tidak, jika mouse up, atau x tidak kurang dari 10, 42 00:02:08,430 --> 00:02:10,460 kami akan melakukan segala sesuatu di set kedua. 43 00:02:10,460 --> 00:02:15,010 Dan itulah analog dengan apa yang Anda lihat di sini untuk ekspresi C. Jika Boolean, 44 00:02:15,010 --> 00:02:17,910 melakukan hal-hal antara set pertama dari kurung kurawal. 45 00:02:17,910 --> 00:02:20,550 Lain, melakukan hal-hal antara kedua set kurung kurawal. 46 00:02:20,550 --> 00:02:22,080 Jadi jika Boolean yang ekspresi benar, kita akan 47 00:02:22,080 --> 00:02:23,580 melakukan apa pun yang antara set pertama. 48 00:02:23,580 --> 00:02:27,480 Jika ekspresi Boolean adalah palsu, yang akan memicu yang lain, 49 00:02:27,480 --> 00:02:30,100 dan kami akan melakukan apa pun di set kedua kurung kurawal. 50 00:02:30,100 --> 00:02:34,190 Sekali lagi, atas ke bawah, semua baris di antara kawat gigi. 51 00:02:34,190 --> 00:02:38,130 >> Dalam C, itu mungkin untuk membuat jika-lain jika-lain rantai. 52 00:02:38,130 --> 00:02:42,000 Bahkan Anda dapat memiliki jika-lain jika-lain jika-lain, jika, dan seterusnya dan seterusnya dan 53 00:02:42,000 --> 00:02:42,720 pada. 54 00:02:42,720 --> 00:02:44,660 Dalam Scratch, ini diperlukan bersarang blok. 55 00:02:44,660 --> 00:02:48,280 Anda menambahkan lain jika-dan Anda harus menempatkan satu sama lain dalam lain yang, 56 00:02:48,280 --> 00:02:51,110 dan sebagainya, dan itu mendapat jenis bersarang dan rumit. 57 00:02:51,110 --> 00:02:52,450 Tapi C, kita tidak perlu melakukan itu. 58 00:02:52,450 --> 00:02:55,300 Kita bisa benar-benar hanya memiliki itu menjadi rantai seperti ini. 59 00:02:55,300 --> 00:02:58,350 Sekali lagi, seperti yang Anda harapkan, semua cabang-cabang yang saling eksklusif. 60 00:02:58,350 --> 00:03:00,750 Anda hanya bisa pernah pergi ke salah satu cabang. 61 00:03:00,750 --> 00:03:02,270 Jika hal ini benar. 62 00:03:02,270 --> 00:03:03,930 Jika tidak, jika hal ini benar. 63 00:03:03,930 --> 00:03:05,700 Jika tidak, jika hal ini benar. 64 00:03:05,700 --> 00:03:07,120 Jika tidak, lakukan ini. 65 00:03:07,120 --> 00:03:11,010 Jadi semua empat cabang di ini Misalnya saling eksklusif. 66 00:03:11,010 --> 00:03:14,900 Ini adalah jika-lain jika-lain rantai. 67 00:03:14,900 --> 00:03:17,580 >> Hal ini dimungkinkan meskipun, dan kadang-kadang sangat berguna, 68 00:03:17,580 --> 00:03:20,950 untuk membuat rantai tidak cabang saling eksklusif. 69 00:03:20,950 --> 00:03:24,600 Dalam contoh ini, hanya ketiga dan cabang keempat yang saling eksklusif. 70 00:03:24,600 --> 00:03:27,450 Bisa jadi Anda bisa memenuhi kondisi pertama, 71 00:03:27,450 --> 00:03:29,396 dan Anda bisa memuaskan kondisi kedua, 72 00:03:29,396 --> 00:03:31,770 dan Anda bisa memuaskan condition-- ketiga dalam hal 73 00:03:31,770 --> 00:03:35,270 Anda akan pergi ke cabang pertama, maka Anda pergi ke cabang kedua, 74 00:03:35,270 --> 00:03:37,000 maka Anda akan pergi ke cabang ketiga. 75 00:03:37,000 --> 00:03:40,450 Atau mungkin Anda memenuhi pertama kondisi, dan kondisi kedua, 76 00:03:40,450 --> 00:03:42,770 tetapi Anda tidak memuaskan kondisi ketiga. 77 00:03:42,770 --> 00:03:46,230 Dalam hal ini Anda pergi ke pertama cabang dan cabang kedua, 78 00:03:46,230 --> 00:03:48,040 dan kemudian cabang keempat, 79 00:03:48,040 --> 00:03:51,392 >> Alasan untuk ini adalah bahwa lain hanya akan mengikat terdekat jika. 80 00:03:51,392 --> 00:03:53,100 Jadi meskipun ada sebuah lain di sini, yang 81 00:03:53,100 --> 00:03:56,490 tidak selalu membuat saling rantai eksklusif dari segala sesuatu. 82 00:03:56,490 --> 00:04:00,890 Ini hanya ungkapan ada dengan Boolean 83 00:04:00,890 --> 00:04:05,040 ekspresi 3-- itulah saling eksklusif dengan yang lain itu. 84 00:04:05,040 --> 00:04:07,580 Jadi mungkin, dan kadang-kadang cukup berguna, 85 00:04:07,580 --> 00:04:11,772 seperti yang saya katakan, untuk menciptakan sebuah rantai cabang tidak saling eksklusif. 86 00:04:11,772 --> 00:04:14,230 Mari kita lihat berbeda jenis bersyarat, yang 87 00:04:14,230 --> 00:04:17,392 Anda belum terlihat sebelumnya di Scratch. 88 00:04:17,392 --> 00:04:19,369 Ada sesuatu yang disebut pernyataan switch. 89 00:04:19,369 --> 00:04:21,410 Pernyataan switch jenis rapi karena itu 90 00:04:21,410 --> 00:04:25,930 pernyataan bersyarat yang memungkinkan Anda untuk menentukan kasus yang berbeda, 91 00:04:25,930 --> 00:04:28,926 bukan mengandalkan Boolean ekspresi untuk membuat keputusan untuk Anda. 92 00:04:28,926 --> 00:04:31,050 Jadi misalnya, katakanlah bahwa saya memiliki program ini, 93 00:04:31,050 --> 00:04:34,110 dan aku meminta user untuk memberikan masukan kepada saya. 94 00:04:34,110 --> 00:04:37,170 Jadi saya katakan, int x = Dapatkan Int (), dan jika Anda tidak terbiasa lagi, 95 00:04:37,170 --> 00:04:40,190 mendapatkan int adalah fungsi yang juga termasuk di perpustakaan CS50, 96 00:04:40,190 --> 00:04:44,610 jadi jika Anda # include CS50.H Anda akan memiliki Akses Mendapatkan Int () dan semua yang 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, dan sebagainya. 98 00:04:46,840 --> 00:04:52,590 Pada dasarnya satu Dapatkan fungsi untuk setiap Jenis data yang kita sudah dibahas. 99 00:04:52,590 --> 00:04:53,970 >> Jadi Int x sama getInt. 100 00:04:53,970 --> 00:04:56,390 Pada dasarnya apa yang terjadi adalah aku di terminal. 101 00:04:56,390 --> 00:04:58,790 Saya meminta user untuk mengetikkan nomor. 102 00:04:58,790 --> 00:05:02,300 >> Dan di sini aku beralih apa yang saya lakukan, tergantung 103 00:05:02,300 --> 00:05:05,060 pada apa yang pengguna mengetik pada prompt. 104 00:05:05,060 --> 00:05:09,147 Jadi, jika mereka mengetik satu, saya mencetak satu. 105 00:05:09,147 --> 00:05:09,855 Dan kemudian saya istirahat. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Jika mereka tipe dua, saya mencetak dua. 108 00:05:15,510 --> 00:05:16,690 Dan kemudian saya istirahat. 109 00:05:16,690 --> 00:05:19,060 Sangat penting untuk istirahat antara setiap kasus 110 00:05:19,060 --> 00:05:20,890 karena jika tidak Anda akan jatuh. 111 00:05:20,890 --> 00:05:23,380 Jadi jika saya tidak punya istirahat di sana, dan pengguna 112 00:05:23,380 --> 00:05:31,380 diketik satu, apa yang akan terjadi itu akan mencetak satu, dua, tiga, maaf. 113 00:05:31,380 --> 00:05:33,099 Itu semacam perilaku aneh, kan? 114 00:05:33,099 --> 00:05:33,890 Anda mungkin berpikir begitu. 115 00:05:33,890 --> 00:05:36,480 Tapi sebenarnya ada beberapa kasus di mana ini bisa menjadi hal yang cukup berguna. 116 00:05:36,480 --> 00:05:39,730 Jadi, inilah contoh lain dari switch Pernyataan mana saya menghilangkan istirahat. 117 00:05:39,730 --> 00:05:42,030 Tapi aku melakukannya dengan sengaja. 118 00:05:42,030 --> 00:05:43,030 >> Jadi apa yang terjadi di sini? 119 00:05:43,030 --> 00:05:43,821 Berpikir untuk kedua. 120 00:05:43,821 --> 00:05:45,960 Anda bahkan mungkin ingin menghentikan video sementara. 121 00:05:45,960 --> 00:05:48,230 >> Apa yang terjadi di sini jika jenis pengguna empat? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Jadi saya sudah meminta pengguna untuk input. 124 00:05:53,860 --> 00:05:56,560 Dan mereka memberikan nilai 4. 125 00:05:56,560 --> 00:05:59,545 Apa yang akan dicetak ketika saya melakukan itu? 126 00:05:59,545 --> 00:06:02,170 Pada slide sebelumnya, ada istirahat antara semua kasus. 127 00:06:02,170 --> 00:06:04,750 Dan sehingga akan hanya mencetak empat dan kemudian berhenti. 128 00:06:04,750 --> 00:06:06,610 Tapi dalam kasus ini, tidak akan. 129 00:06:06,610 --> 00:06:10,700 Apa yang akan terjadi adalah Anda akan jatuh setiap kasus. 130 00:06:10,700 --> 00:06:14,890 >> Jadi dalam hal ini saya telah mengatur kasus saya sedemikian rupa bahwa jika jenis pengguna 4, 131 00:06:14,890 --> 00:06:20,070 Saya akan mencetak empat, tiga, dua, satu, ledakan off. 132 00:06:20,070 --> 00:06:22,780 Dan jika mereka mengetik 5, saya akan mulai di lima dan melakukan hal yang sama. 133 00:06:22,780 --> 00:06:26,410 Jika mereka mengetik 1, saya akan hanya melakukan satu, ledakan off. 134 00:06:26,410 --> 00:06:28,715 >> Jadi dalam hal ini, saya menggunakan saklar jenis cerdik sehingga 135 00:06:28,715 --> 00:06:30,804 bahwa saya berniat untuk jatuh melalui semua kasus. 136 00:06:30,804 --> 00:06:33,720 Tetapi umumnya tidak mungkin akan Anda ingin istirahat antara mereka semua, 137 00:06:33,720 --> 00:06:36,090 kecuali jika Anda memiliki sebuah situasi seperti ini di mana Anda 138 00:06:36,090 --> 00:06:40,081 jenis memanfaatkan fakta bahwa Anda akan jatuh melalui kasus tanpa istirahat. 139 00:06:40,081 --> 00:06:42,830 Jadi itulah kedua utama jenis pernyataan bersyarat. 140 00:06:42,830 --> 00:06:47,139 Yang terakhir yang adalah:? Jadi saya memiliki dua potongan kode C di sini. 141 00:06:47,139 --> 00:06:48,680 Satu di sebelah kiri dan satu di sebelah kanan. 142 00:06:48,680 --> 00:06:52,330 Yang di sebelah kiri harus mungkin cukup akrab bagi Anda. 143 00:06:52,330 --> 00:06:55,110 >> Saya memiliki Int x. 144 00:06:55,110 --> 00:06:57,167 Dan aku mungkin harus telah meminta pengguna 145 00:06:57,167 --> 00:07:00,250 for-- ini mungkin harus Int x sama getInt, atau sesuatu seperti itu. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Dan kemudian aku membuat keputusan. 148 00:07:05,240 --> 00:07:11,700 Jika beberapa ekspresi Boolean adalah benar, menetapkan x nilai 5. 149 00:07:11,700 --> 00:07:13,590 Jika tidak, menetapkan x nilai 6. 150 00:07:13,590 --> 00:07:16,548 >> Yang di sebelah kiri mungkin harus cukup akrab dari diskusi kami 151 00:07:16,548 --> 00:07:18,160 Jika dari Lain beberapa saat yang lalu. 152 00:07:18,160 --> 00:07:20,535 Apakah Anda akan terkejut untuk mengetahui bahwa garis di sebelah kanan 153 00:07:20,535 --> 00:07:22,310 melakukan hal yang sama persis? 154 00:07:22,310 --> 00:07:26,140 >> Jadi ini disebut:? Atau kadang-kadang disebut operator ternary. 155 00:07:26,140 --> 00:07:27,450 Dan itu cukup keren. 156 00:07:27,450 --> 00:07:29,110 Ini biasanya digunakan sebagai trik lucu. 157 00:07:29,110 --> 00:07:35,777 >> Tapi apa yang memungkinkan Anda lakukan adalah untuk mensimulasikan Jika Lain dengan benar-benar kecil, 158 00:07:35,777 --> 00:07:37,610 benar-benar sepele singkat cabang bersyarat. 159 00:07:37,610 --> 00:07:41,470 Biasanya Anda tidak akan menggunakan: jika Anda memiliki enam baris kode antara setiap set 160 00:07:41,470 --> 00:07:42,569 kurung keriting. 161 00:07:42,569 --> 00:07:44,360 Tapi jika Anda hanya membuat keputusan cepat, 162 00:07:44,360 --> 00:07:47,520 jika Anda akan melakukan satu hal atau yang lain dan itu sangat sederhana, 163 00:07:47,520 --> 00:07:52,240 ini mungkin menjadi contoh bagaimana melakukannya dengan:? operator ternary. 164 00:07:52,240 --> 00:07:56,940 Jadi Int x sama dengan ekspresi? 165 00:07:56,940 --> 00:07:59,470 Hal setelah pertanyaan mark adalah apa yang nilai x 166 00:07:59,470 --> 00:08:02,690 akan jika ungkapan benar. 167 00:08:02,690 --> 00:08:05,330 >> Hal setelah usus besar adalah apa nilai x 168 00:08:05,330 --> 00:08:07,990 akan jika ekspresi itu palsu. 169 00:08:07,990 --> 00:08:11,510 Jadi aku bertanya pada diri sendiri, adalah ekspresi yang benar? 170 00:08:11,510 --> 00:08:13,870 Jika ya, menetapkan x nilai 5. 171 00:08:13,870 --> 00:08:16,619 Jika tidak, menetapkan x nilai 6. 172 00:08:16,619 --> 00:08:17,410 Sekali lagi, seperti saya katakan. 173 00:08:17,410 --> 00:08:18,670 Hal ini biasanya hanya trik lucu. 174 00:08:18,670 --> 00:08:20,430 Dan kadang-kadang jika Anda menjadi benar-benar nyaman dengan itu, 175 00:08:20,430 --> 00:08:22,820 Anda akan melakukan ini karena terlihat jenis dingin dalam program Anda. 176 00:08:22,820 --> 00:08:25,710 Umumnya saya menyajikannya ke Anda sekarang sehingga Anda akrab dengan itu 177 00:08:25,710 --> 00:08:26,990 jika Anda melihatnya. 178 00:08:26,990 --> 00:08:30,080 Namun yang pasti tahu Anda tidak memiliki untuk menulis dalam kode Anda. 179 00:08:30,080 --> 00:08:33,246 Tapi itu adalah sesuatu yang harus akrab dengan, karena Anda pasti akan menemukan 180 00:08:33,246 --> 00:08:36,130 potongan kode di sini dan ada di mana ini:? sintaks, 181 00:08:36,130 --> 00:08:39,120 AKA operator terner, digunakan. 182 00:08:39,120 --> 00:08:40,960 >> Ringkasan begitu cepat pada apa conditional yang, 183 00:08:40,960 --> 00:08:44,210 dan apa pilihan yang tersedia untuk Anda dalam C. Anda harus Jika dan jika-lain, 184 00:08:44,210 --> 00:08:46,860 dan jika lain jika, dan lain-lain. 185 00:08:46,860 --> 00:08:50,880 Anda dapat menggunakan ekspresi Boolean bagi mereka untuk membuat keputusan. 186 00:08:50,880 --> 00:08:53,720 >> Dengan laporan beralih Anda gunakan kasus diskrit untuk membuat keputusan. 187 00:08:53,720 --> 00:08:57,540 Anda akan secara khusus mengatakan, jika satu, atau jika itu dua, atau jika itu tiga, 188 00:08:57,540 --> 00:09:00,870 Aku akan melakukan hal ini, atau hal ini, atau hal ini. 189 00:09:00,870 --> 00:09:04,660 Dan:? Dapat digunakan untuk menggantikan sangat sederhana cabang jika-lain, 190 00:09:04,660 --> 00:09:08,490 atau jika-lain rantai untuk membuat kode Anda terlihat sedikit mewah. 191 00:09:08,490 --> 00:09:09,250 >> Aku Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Dan ini CS50. 193 00:09:11,410 --> 00:09:12,959