1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Pekala. 3 00:00:05,640 --> 00:00:08,330 Yani şimdi bir şeye hakkında konuşalım programming-- gerçekten yararlı 4 00:00:08,330 --> 00:00:09,914 koşullu ifadeler. 5 00:00:09,914 --> 00:00:11,830 Yani koşullu ifadeler programlarınızı izin 6 00:00:11,830 --> 00:00:14,538 kararlar ve farklı almaya Yol, bir şey çatal 7 00:00:14,538 --> 00:00:17,670 Ben, biraz önce bahsettiğin değişkenlerin değerlerine bağlı olarak, 8 00:00:17,670 --> 00:00:20,990 ya dayalı neyi kullanıcı girişi de programcı, komut satırında, 9 00:00:20,990 --> 00:00:23,130 veya bir istemi varsa Ya da bunun gibi bir şey. 10 00:00:23,130 --> 00:00:26,690 C farklı şekillerde bir çift vardır , koşullu ifadeler ifade eden 11 00:00:26,690 --> 00:00:29,911 daha da bazen arayacak programlarınızda koşullu dallanma. 12 00:00:29,911 --> 00:00:32,910 Ve bunlardan bazıları bakmak için gidiyoruz sıfırdan sizin için oldukça tanıdık, 13 00:00:32,910 --> 00:00:35,190 bu yüzden bile onları çekin edeceğiz , yan tarafı yukarı sadece 14 00:00:35,190 --> 00:00:38,170 Kafanda o benzetme yapabilirsiniz. 15 00:00:38,170 --> 00:00:41,250 >> Bu yüzden, ve-- oldukça ise koşullu basit. 16 00:00:41,250 --> 00:00:43,560 Eğer gelen hatırlayacak olursak Burada sağ tarafta çizik 17 00:00:43,560 --> 00:00:50,000 Bu altıgen olduğunu sen doldurabilir mavi ifadenin aşağı fare eğer birlikte 18 00:00:50,000 --> 00:00:53,010 veya x az 10 ise, Ya da bunun gibi bir şey. 19 00:00:53,010 --> 00:00:57,390 Ve bundan sonra da, X, en az 10 olduğu ya da fare aslında ise, aşağı, 20 00:00:57,390 --> 00:01:01,140 içindeki tüm kodu bulmaca parçası yürütülür. 21 00:01:01,140 --> 00:01:03,720 Uygun her şey O C şeklin içinde. 22 00:01:03,720 --> 00:01:07,200 >> Benzer şekilde, var Orada solda ise. 23 00:01:07,200 --> 00:01:09,210 Boole ifadesi ise, Ben sadece kullanıyorum hangi 24 00:01:09,210 --> 00:01:13,010 Boolean biri için bir ikame olarak Daha önce tartışılan ifadeler, 25 00:01:13,010 --> 00:01:15,240 açık kaşlı ayraç, yakın kaşlı ayraç. 26 00:01:15,240 --> 00:01:17,720 Yani açık Kıvırcık düşünüyorum brace ve kapalı kaşlı ayraç 27 00:01:17,720 --> 00:01:22,720 sandviç olarak sıralamak benzer Sağdaki ise bloğun etkisi 28 00:01:22,720 --> 00:01:24,070 Sıfırdan. 29 00:01:24,070 --> 00:01:28,680 >> Boole ifadesi ise eğer açıklamada, doğrudur 30 00:01:28,680 --> 00:01:30,900 kod sonra tüm hatlar kaşlı ayraçlar arasında 31 00:01:30,900 --> 00:01:33,870 sırayla yürütecek baştan aşağı. 32 00:01:33,870 --> 00:01:35,700 Boole ifadesi ise yanlış, biz olacak 33 00:01:35,700 --> 00:01:38,610 her şeyin üzerinde atlamak arasında kaşlı, çünkü biz sadece 34 00:01:38,610 --> 00:01:44,570 Yolun o çatal aşağı gitmek istiyorum Boolean ifadesi doğrudur. 35 00:01:44,570 --> 00:01:48,540 >> Biz bu bir adım atabilirsiniz ayrıca else if ile. 36 00:01:48,540 --> 00:01:50,820 Yani bu Scratch blok birine oldukça benzer 37 00:01:50,820 --> 00:01:55,884 Biz hariç sadece bir saniye önce gördüm o dayalı iki farklı yolları alır 38 00:01:55,884 --> 00:01:56,550 yaşananlara. 39 00:01:56,550 --> 00:02:00,420 Fare aşağı Yani eğer, veya x ise en az 10 olduğu 40 00:02:00,420 --> 00:02:04,780 Biz arasında var olan her şeyi yapacağız birinci çatal, ilk C. 41 00:02:04,780 --> 00:02:08,430 >> Aksi takdirde, bir fare ise, yukarı veya x, 10'dan daha az olan, 42 00:02:08,430 --> 00:02:10,460 ikinci sette her şeyi yapacağız. 43 00:02:10,460 --> 00:02:15,010 Ve bu gördüklerinizi benzer var Burada C. Eğer Boole ifadesi için, 44 00:02:15,010 --> 00:02:17,910 arasındaki şeyler İlk küme ayraçları kümesi. 45 00:02:17,910 --> 00:02:20,550 Else arasındaki şeyler İkinci küme ayraçları kümesi. 46 00:02:20,550 --> 00:02:22,080 Boolean Yani eğer ifadesi yaparız, doğrudur 47 00:02:22,080 --> 00:02:23,580 İlk sette aramda yaparım. 48 00:02:23,580 --> 00:02:27,480 Boole ifadesi ise Yanlış, o başka tetikleyebilir, 49 00:02:27,480 --> 00:02:30,100 ve biz ne olursa olsun 's yapacağını küme ayraçları ikinci seti. 50 00:02:30,100 --> 00:02:34,190 Yine, yukarıdan aşağıya, tüm parantezler arasındaki çizgiler. 51 00:02:34,190 --> 00:02:38,130 >> C, bu oluşturmak mümkündür Bir if-else if-else zinciri. 52 00:02:38,130 --> 00:02:42,000 Aslında olabilir if-else if-else if-else vesaire vesaire eğer, ve böylece, ve 53 00:02:42,000 --> 00:02:42,720 üzerinde. 54 00:02:42,720 --> 00:02:44,660 Scratch, bu gerekli blokları yuvalama. 55 00:02:44,660 --> 00:02:48,280 Bir if-else ekleyin ve vardı Else içine başka bir koyun, 56 00:02:48,280 --> 00:02:51,110 ve böylece, ve bu tür var iç içe ve karmaşık. 57 00:02:51,110 --> 00:02:52,450 Ama C, bunu yapmak zorunda değilsiniz. 58 00:02:52,450 --> 00:02:55,300 Biz aslında sadece olabilir Böyle bir zincir. 59 00:02:55,300 --> 00:02:58,350 Yine, tüm tahmin edebileceğiniz gibi Bu dallar birbirini dışlar. 60 00:02:58,350 --> 00:03:00,750 Sadece hiç gidebilirsiniz şube biri aşağı. 61 00:03:00,750 --> 00:03:02,270 Eğer bu doğrudur. 62 00:03:02,270 --> 00:03:03,930 Aksi takdirde, eğer bu doğruysa. 63 00:03:03,930 --> 00:03:05,700 Aksi takdirde, eğer bu doğruysa. 64 00:03:05,700 --> 00:03:07,120 Aksi takdirde, bunu. 65 00:03:07,120 --> 00:03:11,010 Yani bu şube dört örnek birbirini dışlar. 66 00:03:11,010 --> 00:03:14,900 Bir if-else if-else zincir. 67 00:03:14,900 --> 00:03:17,580 >> Bu, olsa mümkündür ve bazen de çok yararlıdır, 68 00:03:17,580 --> 00:03:20,950 bir zincir oluşturmak için değil, birbirini dışlayan dalları. 69 00:03:20,950 --> 00:03:24,600 Bu örnekte, sadece üçüncü ve Dördüncü dalları birbirini dışlar. 70 00:03:24,600 --> 00:03:27,450 Bu yapabildin ki olabilir İlk şartını yerine, 71 00:03:27,450 --> 00:03:29,396 ve tatmin olabilir İkinci şart, 72 00:03:29,396 --> 00:03:31,770 ve tatmin olabilir Üçüncü condition-- durumda 73 00:03:31,770 --> 00:03:35,270 Eğer ilk şubesini aşağı gider, Daha sonra ikinci bir şube aşağı gitmek, 74 00:03:35,270 --> 00:03:37,000 sonra üçüncü şubesini aşağı gider. 75 00:03:37,000 --> 00:03:40,450 Ya da belki ilk tatmin durum ve ikinci koşul, 76 00:03:40,450 --> 00:03:42,770 ama tatmin etmiyor Üçüncü koşul. 77 00:03:42,770 --> 00:03:46,230 Bu durumda ilk aşağı gitmek şube ve ikinci dal, 78 00:03:46,230 --> 00:03:48,040 ve daha sonra dördüncü şube, 79 00:03:48,040 --> 00:03:51,392 >> Bunun nedeni başka olduğunu sadece en yakın bağlanır. 80 00:03:51,392 --> 00:03:53,100 Yani orada olsa bile Burada başka bir o 81 00:03:53,100 --> 00:03:56,490 mutlaka karşılıklı yaratmaz her şeyin seçkin zincir. 82 00:03:56,490 --> 00:04:00,890 Sadece deyim Orada BooleANDile 83 00:04:00,890 --> 00:04:05,040 ifadesi 3-- işte ile başka birbirini dışlayan. 84 00:04:05,040 --> 00:04:07,580 Bu nedenle mümkündür ve bazen oldukça yararlıdır, 85 00:04:07,580 --> 00:04:11,772 dediğim gibi, bir zincir oluşturmak için birbirini dışlayan değil dalları. 86 00:04:11,772 --> 00:04:14,230 En farklı bir göz atalım koşullu tür, hangi 87 00:04:14,230 --> 00:04:17,392 Eğer Scratch önce görmedim. 88 00:04:17,392 --> 00:04:19,369 Denilen bir şey var switch deyimi. 89 00:04:19,369 --> 00:04:21,410 Switch deyimi ise o çünkü tür temiz 90 00:04:21,410 --> 00:04:25,930 sağlayan bir koşullu deyim Eğer, farklı durumları belirtmek için 91 00:04:25,930 --> 00:04:28,926 Bunun yerine Boolean güvenmek ifadeler sizin için kararlar. 92 00:04:28,926 --> 00:04:31,050 Yani, örneğin, diyelim ki Ben bu programa sahip olduğunu, 93 00:04:31,050 --> 00:04:34,110 ve ben kullanıcı soruyorum Bana girdi sağlamak için. 94 00:04:34,110 --> 00:04:37,170 Yani diyorum, int x =) (Int alın ve henüz aşina değilseniz, 95 00:04:37,170 --> 00:04:40,190 int olsun bir işlevdir Ayrıca, CS50 kütüphanede yer 96 00:04:40,190 --> 00:04:44,610 Eğer CS50.H #include yüzden eğer gerekecek erişim Int (Al) ve tüm onun 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, vb. 98 00:04:46,840 --> 00:04:52,590 Temelde tek her işlevini alın zaten tartıştığımız veri türü. 99 00:04:52,590 --> 00:04:53,970 >> Yani Int x GETINT eşittir. 100 00:04:53,970 --> 00:04:56,390 Temelde neler Ben terminalde olduğum. 101 00:04:56,390 --> 00:04:58,790 Ben bir sayı yazmak için kullanıcı soruyorum. 102 00:04:58,790 --> 00:05:02,300 >> Ve burada geçiş yapıyorum Ben ne yapıyorum, bağlı 103 00:05:02,300 --> 00:05:05,060 Kullanıcı isteminde yazdıklarınızı üzerinde. 104 00:05:05,060 --> 00:05:09,147 Onlar bir yazdıysanız Yani, bir tane çıktı. 105 00:05:09,147 --> 00:05:09,855 Ve sonra bölünürler. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Onlar iki yazarsanız, iki yazdırın. 108 00:05:15,510 --> 00:05:16,690 Ve sonra bölünürler. 109 00:05:16,690 --> 00:05:19,060 Bu önemlidir her durumda arasında bölmek 110 00:05:19,060 --> 00:05:20,890 aksi takdirde içinden düşecek çünkü. 111 00:05:20,890 --> 00:05:23,380 Ben herhangi yoktu eğer öyleyse Orada sonları ve kullanıcı 112 00:05:23,380 --> 00:05:31,380 yazılı biri, öyle ne olur üzgünüm, bir, iki, üç basacaktır. 113 00:05:31,380 --> 00:05:33,099 Bu doğru, garip davranış türüdür? 114 00:05:33,099 --> 00:05:33,890 Sen öyle düşünebilirsin. 115 00:05:33,890 --> 00:05:36,480 Ama aslında bazı durumlarda nerede vardır Bu oldukça kullanışlı bir şey olabilir. 116 00:05:36,480 --> 00:05:39,730 Yani burada bir anahtarın başka bir örnek Ben sonları ihmal beyanı. 117 00:05:39,730 --> 00:05:42,030 Ama bilerek yapıyorum. 118 00:05:42,030 --> 00:05:43,030 >> Peki burada ne olur? 119 00:05:43,030 --> 00:05:43,821 Bir saniye düşünün. 120 00:05:43,821 --> 00:05:45,960 Hatta videoyu duraklatmak isteyebilirsiniz. 121 00:05:45,960 --> 00:05:48,230 >> Ya burada olur kullanıcı türleri dört? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Yani giriş için kullanıcı sordunuz. 124 00:05:53,860 --> 00:05:56,560 Ve onlar değer 4 sağlarlar. 125 00:05:56,560 --> 00:05:59,545 Ben ne baskılı aldığında? 126 00:05:59,545 --> 00:06:02,170 Bir önceki slaytta vardı Tüm olguların arasındaki sonları. 127 00:06:02,170 --> 00:06:04,750 Ve böylece sadece olur Yazdırmak dört ve daha sonra durur. 128 00:06:04,750 --> 00:06:06,610 Ancak bu durumda, böyle olmaz. 129 00:06:06,610 --> 00:06:10,700 Ne olur sen olduğunu her durumda doğru düşecek. 130 00:06:10,700 --> 00:06:14,890 >> Yani bu durumda benim davaları organize ettik bu şekilde kullanıcı tipleri 4 ise, 131 00:06:14,890 --> 00:06:20,070 Ben basacaktır dört, üç, iki, bir, havalanmak. 132 00:06:20,070 --> 00:06:22,780 Onlar 5 yazdıysanız, ben başlamak istiyorum ve beşte aynı şeyi yapmak. 133 00:06:22,780 --> 00:06:26,410 Onlar 1 yazdıysanız, yapardım Sadece, patlama birini kapalı yapın. 134 00:06:26,410 --> 00:06:28,715 >> Bu durumda Yani, istimal Bir anahtar tür akıllıca yani 135 00:06:28,715 --> 00:06:30,804 Ben düşmek niyetinde emin Tüm olgularda aracılığıyla. 136 00:06:30,804 --> 00:06:33,720 Ama genelde muhtemelen olacaksın hepsi arasında kırmak istiyorum 137 00:06:33,720 --> 00:06:36,090 Eğer bir durum yoksa sen bunun gibi 138 00:06:36,090 --> 00:06:40,081 tür gerçeğini yararlanarak size olacak o ara vermeden durumlarda aracılığıyla düşer. 139 00:06:40,081 --> 00:06:42,830 Böylece büyük ikinci bulunuyor koşullu ifadelerin türleri. 140 00:06:42,830 --> 00:06:47,139 ? Ki son geçerli: Yani Burada C kodu iki parçacıkları var. 141 00:06:47,139 --> 00:06:48,680 Soldaki biri ve sağ tarafta bir. 142 00:06:48,680 --> 00:06:52,330 Soldaki gerekir muhtemelen sizin için oldukça tanıdık. 143 00:06:52,330 --> 00:06:55,110 >> Ben Int x var. 144 00:06:55,110 --> 00:06:57,167 Ve ben muhtemelen gerektiğini kullanıcı istediler 145 00:06:57,167 --> 00:07:00,250 for-- bu muhtemelen Int x olmalı GETINT, ya da onun gibi bir şey eşittir. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Ve sonra bir karar var. 148 00:07:05,240 --> 00:07:11,700 Bazı Boole ifadesi ise Gerçek değer 5 x atayın. 149 00:07:11,700 --> 00:07:13,590 Aksi takdirde, değeri 6 x atayın. 150 00:07:13,590 --> 00:07:16,548 >> Soldaki Muhtemelen olmalı Bizim tartışma oldukça tanıdık 151 00:07:16,548 --> 00:07:18,160 sadece bir an önce Else edin. 152 00:07:18,160 --> 00:07:20,535 Eğer bilmek için sürpriz olurdu Sağdaki hattı olduğunu 153 00:07:20,535 --> 00:07:22,310 aynı şeyi yapar? 154 00:07:22,310 --> 00:07:26,140 >> ? Yani bu denir: ya da bazen üçlü operatör denir. 155 00:07:26,140 --> 00:07:27,450 Ve bu oldukça serin. 156 00:07:27,450 --> 00:07:29,110 Genellikle sevimli bir hile olarak kullanılır. 157 00:07:29,110 --> 00:07:35,777 >> Ama izin verir ne olduğunu yapmak gerçekten küçük olan Else If bir simüle, 158 00:07:35,777 --> 00:07:37,610 Gerçekten trivially kısa koşullu dallar. 159 00:07:37,610 --> 00:07:41,470 Genellikle kullanmak olmaz:? Eğer her set arasında kod altı çizgiler vardı 160 00:07:41,470 --> 00:07:42,569 bir kaşlı. 161 00:07:42,569 --> 00:07:44,360 Ama sadece eğer hızlı karar verme, 162 00:07:44,360 --> 00:07:47,520 Eğer bir şey yapmak için gidiyoruz eğer ya da diğer ve çok basit, 163 00:07:47,520 --> 00:07:52,240 Bu nasıl bir örnek olabilir ile bunu:? üçlü operatörü. 164 00:07:52,240 --> 00:07:56,940 Yani Int x ifadesini eşittir? 165 00:07:56,940 --> 00:07:59,470 Sorudan sonra bir şey mark adlı x kıymeti ne 166 00:07:59,470 --> 00:08:02,690 ifadesi doğruysa olacak. 167 00:08:02,690 --> 00:08:05,330 >> Sonra bir şey Kolon ne x kullanıcısının değeri 168 00:08:05,330 --> 00:08:07,990 ifadesi yanlış olsaydı olurdu. 169 00:08:07,990 --> 00:08:11,510 Yani kendime soruyorum, ifade doğrudur? 170 00:08:11,510 --> 00:08:13,870 Eğer öyleyse, değeri 5 x atayın. 171 00:08:13,870 --> 00:08:16,619 O değilse, değer 6 x atayın. 172 00:08:16,619 --> 00:08:17,410 Yine, böyle dedim. 173 00:08:17,410 --> 00:08:18,670 Bu genellikle sadece şirin bir hiledir. 174 00:08:18,670 --> 00:08:20,430 Ve bazen kalırsanız Gerçekten onunla rahat, 175 00:08:20,430 --> 00:08:22,820 görünüyor, çünkü bu yapacağım programlarınızda serin tür. 176 00:08:22,820 --> 00:08:25,710 Genellikle bunu sunma ediyorum Şimdi bu yüzden onunla bilginiz 177 00:08:25,710 --> 00:08:26,990 Eğer görürseniz. 178 00:08:26,990 --> 00:08:30,080 Ama kesinlikle yok biliyorum kodunuzda herhangi yazmaya. 179 00:08:30,080 --> 00:08:33,246 Ama bir şey aşina olmak, kesinlikle karşılaşacağınız çünkü 180 00:08:33,246 --> 00:08:36,130 Burada kod parçacıkları ve Orada nerede bu:? sözdizimi, 181 00:08:36,130 --> 00:08:39,120 Üçlü operatör AKA kullanılır. 182 00:08:39,120 --> 00:08:40,960 >> Üzerinde çok hızlı özeti Ne koşul vardır 183 00:08:40,960 --> 00:08:44,210 ve seçenekler nelerdir Şu ana kadar C size ise ve if-else, 184 00:08:44,210 --> 00:08:46,860 ve eğer else if, vesaire. 185 00:08:46,860 --> 00:08:50,880 Sen Boole ifadeleri kullanabilirsiniz olanlar için kararlar. 186 00:08:50,880 --> 00:08:53,720 >> Switch ifadeleri ile kullanmak ayrık olgular kararlar. 187 00:08:53,720 --> 00:08:57,540 Bu kadar eğer özellikle söyleyebilirim biri, ya da üç ise bu iki, ya da eğer, 188 00:08:57,540 --> 00:09:00,870 Ben bu işi yapmak veya edeceğiz bu şey, ya da bu şey. 189 00:09:00,870 --> 00:09:04,660 Ve: değiştirmek için kullanılacak olabilir Çok basit if-else dalları, 190 00:09:04,660 --> 00:09:08,490 veya zincirler yapmak-else if kodunuzu biraz fantezi görünüyorsun. 191 00:09:08,490 --> 00:09:09,250 >> Ben Doug Lloyd değilim. 192 00:09:09,250 --> 00:09:11,410 Bu CS50 olup. 193 00:09:11,410 --> 00:09:12,959