1 00:00:07,090 --> 00:00:07,370 [Powered by Google Translate] Vipul Shekhawat: Hi. 2 00:00:07,370 --> 00:00:09,410 In deze video zal ik de introductie tot een van de meest 3 00:00:09,410 --> 00:00:11,260 fundamentele concepten in de logica en 4 00:00:11,260 --> 00:00:13,880 programmering, de Booleaanse waarde. 5 00:00:13,880 --> 00:00:16,210 Als je nieuwsgierig bent over de naam, Booleaanse waarden en 6 00:00:16,210 --> 00:00:19,440 voorwaarden is genoemd naar George Boole, een 19e-eeuwse 7 00:00:19,440 --> 00:00:22,030 wiskundige die pionier wat nu Booleaanse heet 8 00:00:22,030 --> 00:00:23,980 logica, gebaseerd door samenvoeging en 9 00:00:23,980 --> 00:00:26,030 het vergelijken van Booleaanse waarden. 10 00:00:26,030 --> 00:00:28,250 >> Dus wat is een Booleaanse waarde? 11 00:00:28,250 --> 00:00:30,920 Een Booleaanse waarde is een variabele die slechts twee mogelijke 12 00:00:30,920 --> 00:00:33,710 voorwaarden, waar en onwaar. 13 00:00:33,710 --> 00:00:35,380 U kunt hierbij denken aan het als een lichtschakelaar. 14 00:00:35,380 --> 00:00:38,530 Het kan aan of uit, waar of onwaar. 15 00:00:38,530 --> 00:00:41,880 Evenzo kunnen binaire getallen zijn een of nul, 16 00:00:41,880 --> 00:00:45,680 is analoog aan hetzelfde, waar of onwaar. 17 00:00:45,680 --> 00:00:46,840 Simpel, toch? 18 00:00:46,840 --> 00:00:48,750 Het concept van een Boolean variabele gemakkelijk 19 00:00:48,750 --> 00:00:51,720 begrijpen, maar de manieren waarop u kunt manipuleren en 20 00:00:51,720 --> 00:00:54,570 combineren maakt veel grotere complexiteit. 21 00:00:54,570 --> 00:00:57,030 Naast de twee fundamentele Boolean-waarden, 22 00:00:57,030 --> 00:00:59,350 er zijn veel Booleaanse operatoren die kunt twee 23 00:00:59,350 --> 00:01:01,760 Booleaanse waarden in een enkele. 24 00:01:01,760 --> 00:01:03,540 >> Twee van de meest elementaire, maar het belangrijkste 25 00:01:03,540 --> 00:01:06,570 exploitanten, zijn AND en OR. 26 00:01:06,570 --> 00:01:09,950 De operator AND resulteert in een waarde van true als beide van 27 00:01:09,950 --> 00:01:14,630 de waarden duurt het waar zijn, dus vals en waar is onwaar. 28 00:01:14,630 --> 00:01:17,540 Ook onwaar en onwaar is vals. 29 00:01:17,540 --> 00:01:21,080 Enige ware en echte gelijken waar. 30 00:01:21,080 --> 00:01:24,050 De OR operator resulteert in de waarde true wanneer een van de 31 00:01:24,050 --> 00:01:25,620 waarden die zij nemen niet waar. 32 00:01:25,620 --> 00:01:30,460 Dus valse of valse vals is, maar waar of onwaar is waar, en 33 00:01:30,460 --> 00:01:33,710 Waar of waar is ook waar. 34 00:01:33,710 --> 00:01:36,560 De NOT operator neemt gewoon een booleaanse variabele en geeft 35 00:01:36,560 --> 00:01:37,830 u het tegenovergestelde van het. 36 00:01:37,830 --> 00:01:40,950 Zo waar onwaar en onwaar wordt waar. 37 00:01:40,950 --> 00:01:43,130 Als je het hele ding in elkaar gezet, variabelen met 38 00:01:43,130 --> 00:01:46,320 operators, maakt u een Booleaanse expressie. 39 00:01:46,320 --> 00:01:48,550 >> Laten we nu eens kijken naar een voorbeeld van nesten deze Booleaanse 40 00:01:48,550 --> 00:01:49,950 uitdrukkingen. 41 00:01:49,950 --> 00:01:51,840 Herinnert u zich de volgorde van de bewerkingen? 42 00:01:51,840 --> 00:01:54,700 Zoals met nummers, kan Boole-expressies worden gegroepeerd op 43 00:01:54,700 --> 00:01:56,270 haakjes te gebruiken. 44 00:01:56,270 --> 00:02:00,150 Er zijn in principe drie uitdrukkingen hier niet z, y OF 45 00:02:00,150 --> 00:02:04,740 NIET z en x en y of z NIET. 46 00:02:04,740 --> 00:02:07,080 We kunnen achterhalen van de waarden van deze door te kijken naar de 47 00:02:07,080 --> 00:02:09,020 binnen en werken onze weg naar buiten. 48 00:02:09,020 --> 00:02:12,850 Dus laten we veronderstellen x waar is, y waar is, en z is ook waar. 49 00:02:12,850 --> 00:02:15,270 Wat zou NIET z te evalueren? 50 00:02:15,270 --> 00:02:20,970 Omdat we beginnen met waar is, zou NIET z gewoon vals. 51 00:02:20,970 --> 00:02:26,230 Dus nu hebben we valse of y. 52 00:02:26,230 --> 00:02:29,740 Als je kijkt op de top, kun je zien dat y waar is, Y of valse 53 00:02:29,740 --> 00:02:32,870 zou nog steeds gewoon waar zijn. 54 00:02:32,870 --> 00:02:37,580 Ten slotte hebben we, hebben x en waar. 55 00:02:37,580 --> 00:02:39,300 Dus wat is x en waar? 56 00:02:39,300 --> 00:02:42,590 x is waar en waar is ook waar, dus dit hele ding 57 00:02:42,590 --> 00:02:45,070 de waarde true. 58 00:02:45,070 --> 00:02:47,270 >> Laten we vervolgens eens kijken naar hoe deze Booleaanse uitdrukkingen kunnen 59 00:02:47,270 --> 00:02:49,890 daadwerkelijk worden gebruikt in een programmeertaal. 60 00:02:49,890 --> 00:02:52,900 In C, de syntaxis voor Booleaanse operaties is een beetje anders 61 00:02:52,900 --> 00:02:55,520 van de woorden en, of, en niet. 62 00:02:55,520 --> 00:02:57,210 Laten we dekking van de syntaxis. 63 00:02:57,210 --> 00:03:00,510 Om de operator te gebruiken, schrijven we een dubbele ampersand. 64 00:03:00,510 --> 00:03:03,620 De OR operator is een dubbele pijplijn karakter. 65 00:03:03,620 --> 00:03:05,780 Dit is de rechte verticale lijn, die u waarschijnlijk 66 00:03:05,780 --> 00:03:09,070 vinden boven de Enter-of Return-toetsen op het toetsenbord. 67 00:03:09,070 --> 00:03:12,550 En de operator NOT is gewoon een uitroepteken. 68 00:03:12,550 --> 00:03:15,550 Dus om de uitdrukking die we eerder hadden, zouden we gewoon herschrijven 69 00:03:15,550 --> 00:03:27,010 schrijf dit x && y | |! z. 70 00:03:27,010 --> 00:03:29,250 Dat is gewoon het nemen van precies wat we hebben gehad en draaien 71 00:03:29,250 --> 00:03:31,870 het in C syntax. 72 00:03:31,870 --> 00:03:34,370 >> Nu we vertaald onze Booleaanse expressie in de code, 73 00:03:34,370 --> 00:03:36,160 hoe kunnen we eigenlijk gebruiken? 74 00:03:36,160 --> 00:03:38,170 Laten we zeggen dat we hebben een aantal code die alleen moet worden uitgevoerd als er een 75 00:03:38,170 --> 00:03:40,330 bepaalde expressie waar is. 76 00:03:40,330 --> 00:03:42,750 Voor dit doel vrijwel alle programmeertalen 77 00:03:42,750 --> 00:03:45,190 ter ondersteuning van de als voorwaarde. 78 00:03:45,190 --> 00:03:47,870 Laten we zeggen dat we een Booleaanse variabele, x, en we willen een aantal 79 00:03:47,870 --> 00:03:50,850 code uit te voeren indien x waar. 80 00:03:50,850 --> 00:03:54,900 We zouden gewoon schrijven het woord als, zet haakjes, en zet 81 00:03:54,900 --> 00:03:57,800 de Booleaanse expressie binnen die haakjes. 82 00:03:57,800 --> 00:03:59,680 Daarna pakken we de code die we willen 83 00:03:59,680 --> 00:04:01,080 uit te voeren in accolades. 84 00:04:07,160 --> 00:04:08,150 Wat als er een stukje code dat u wilt 85 00:04:08,150 --> 00:04:10,260 uitvoeren als x niet waar is? 86 00:04:10,260 --> 00:04:13,310 Gewoon anders schrijf het woord na de if-statement, wrap 87 00:04:13,310 --> 00:04:16,930 de andere code in accolades, en dan die code zal 88 00:04:16,930 --> 00:04:18,399 uitvoeren als x is niet waar. 89 00:04:26,640 --> 00:04:29,840 >> Een andere nuttige taal construct is else if. 90 00:04:29,840 --> 00:04:32,210 Stel dat er twee Booleans u zou willen overwegen, 91 00:04:32,210 --> 00:04:34,330 laten we noemen ze x en y. 92 00:04:34,330 --> 00:04:37,340 Wij verklaren deze variabelen te zijn waar en onwaar. 93 00:04:37,340 --> 00:04:40,540 Als x en y waar zijn, u uitvoert het eerste blok van 94 00:04:40,540 --> 00:04:42,630 code binnen die accolades. 95 00:04:42,630 --> 00:04:46,470 Else if x of y waar zijn, u uitvoert het volgende blok van 96 00:04:46,470 --> 00:04:50,590 code, en wat je uitvoert het laatste blok van de code. 97 00:04:50,590 --> 00:04:52,650 Werken met Booleaanse waarden als deze is nuttig, maar 98 00:04:52,650 --> 00:04:55,750 je bent eigenlijk alleen beperkt tot een paar voorwaarden. 99 00:04:55,750 --> 00:04:58,400 Booleans kunnen veel krachtiger wanneer u introduceren 100 00:04:58,400 --> 00:04:59,900 vergelijkingen. 101 00:04:59,900 --> 00:05:01,280 Dit zijn manieren om waarden die te vergelijken 102 00:05:01,280 --> 00:05:03,300 oorspronkelijk niet Boolean. 103 00:05:03,300 --> 00:05:06,060 Om te zien of twee waarden gelijk zijn, kan u gebruik maken van gelijk 104 00:05:06,060 --> 00:05:09,340 gelijken, dat is waar als ze gelijk zijn en false als 105 00:05:09,340 --> 00:05:10,530 ze niet. 106 00:05:10,530 --> 00:05:15,360 Andere gemeenschappelijke vergelijkingen kleiner dan, groter dan, kleiner 107 00:05:15,360 --> 00:05:19,740 dan of gelijk aan en groter dan of gelijk aan. 108 00:05:19,740 --> 00:05:22,220 >> Alles wat ik tot nu toe onder is behoorlijk abstract, dus 109 00:05:22,220 --> 00:05:24,320 laten we deze vergelijkingen te introduceren in een laatste 110 00:05:24,320 --> 00:05:25,850 concreet voorbeeld. 111 00:05:25,850 --> 00:05:27,130 Stel dat er twee variabelen, 112 00:05:27,130 --> 00:05:29,430 temperatuur en isHungry. 113 00:05:29,430 --> 00:05:31,560 Temperatuur is een floating point getal, zodat het kan 114 00:05:31,560 --> 00:05:33,090 decimalen. 115 00:05:33,090 --> 00:05:35,440 Je programmeren van een zeer eenvoudige toepassing die vertelt 116 00:05:35,440 --> 00:05:38,270 iemand wat te eten afhankelijk van de temperatuur. 117 00:05:38,270 --> 00:05:41,010 Als je honger hebt, en en de temperatuur hoger is dan of 118 00:05:41,010 --> 00:05:45,060 gelijk is aan 100, kunt u eten een ijsje. 119 00:05:45,060 --> 00:05:48,370 Anders als je honger hebt en en de temperatuur lager is dan 120 00:05:48,370 --> 00:05:52,420 of gelijk is aan nul, kunt u printf ("eten pittig eten"). 121 00:05:52,420 --> 00:05:55,200 Ten slotte, als je geen honger helemaal niet, kunt u afdrukken "niet 122 00:05:55,200 --> 00:05:56,710 eet alles. " 123 00:05:56,710 --> 00:06:00,130 >> Ik Vipul Shekhawat en dit is CS50.