1 00:00:00,000 --> 00:00:00,440 2 00:00:00,440 --> 00:00:03,440 >> SPEAKER 1: Senast vi analyserade heltal, minns att vi använde en del 3 00:00:03,440 --> 00:00:07,810 Booleska uttryck för att kontrollera om en användares input n var mellan siffror 4 00:00:07,810 --> 00:00:11,580 som 0 och 3, 4 och 7, och 8 och 10. 5 00:00:11,580 --> 00:00:14,990 Tja, vi gjorde det med hjälp av Ifs och annat om s, men det visar sig att du kan 6 00:00:14,990 --> 00:00:17,990 genomföra samma logik med hjälp av en olika programmering konstruktion 7 00:00:17,990 --> 00:00:21,400 helt och hållet samtidigt som man uppnår exakt samma resultat. 8 00:00:21,400 --> 00:00:25,000 I själva verket kan vi presentera något kallas en switch som gör att vi kan 9 00:00:25,000 --> 00:00:28,660 byta vårt beteende beroende på värdet på någon variabel. 10 00:00:28,660 --> 00:00:29,840 >> Låt oss ge det ett försök. 11 00:00:29,840 --> 00:00:35,730 För att göra detta, kommer jag först kommer att inkludera den CS50 biblioteket genom cs50.h. 12 00:00:35,730 --> 00:00:39,960 Jag kommer även att innehålla standard bibliotek i form av standard I / O.h. 13 00:00:39,960 --> 00:00:44,540 Och jag ska förklara huvud i på vanligt sätt, int main tomrum. 14 00:00:44,540 --> 00:00:45,650 Öppna klammer. 15 00:00:45,650 --> 00:00:47,100 Stäng klammer. 16 00:00:47,100 --> 00:00:49,720 Och nu ska jag be användaren för ett heltal. 17 00:00:49,720 --> 00:00:56,990 >> Printf, ge mig en int mellan 1 och 10. 18 00:00:56,990 --> 00:00:59,310 Och nu ska jag få att int använder CS50 19 00:00:59,310 --> 00:01:01,590 bibliotek fungerar, getInt. 20 00:01:01,590 --> 00:01:06,140 Int, låt oss kalla det n, lika getInt. 21 00:01:06,140 --> 00:01:08,500 Och nu ska jag göra lite analyser i det heltal. 22 00:01:08,500 --> 00:01:13,120 Ganska godtyckligt, men med denna nya konstruktet känd som en omkopplare. 23 00:01:13,120 --> 00:01:16,530 Slå på värdet av n enligt följande. 24 00:01:16,530 --> 00:01:23,240 >> I det fall att n är lika med 1 eller, när det fallet att n är lika med 2, eller när det gäller 25 00:01:23,240 --> 00:01:28,150 att n är lika med 3, gå vidare och verkställa denna kodrad. 26 00:01:28,150 --> 00:01:34,480 Printf du valde en liten int, paus. 27 00:01:34,480 --> 00:01:37,610 Nu, jag behöver för att genomföra motsvarande av en ELT enkelt genom 28 00:01:37,610 --> 00:01:40,990 räkna upp ytterligare några fall. 29 00:01:40,990 --> 00:01:47,180 >> I det fall att n är lika med 4, eller i fallet att n är lika med 5, eller i det fall 30 00:01:47,180 --> 00:01:53,830 att n är lika med 6, eller i det fall att n är lika med 7, gå vidare och skriva ut dig 31 00:01:53,830 --> 00:01:58,000 plockade ett medium Int. 32 00:01:58,000 --> 00:01:59,490 Bryt. 33 00:01:59,490 --> 00:02:02,300 Nu i det fall användaren plockas ett stort antal, låt oss 34 00:02:02,300 --> 00:02:04,940 detektera att såsom följer. 35 00:02:04,940 --> 00:02:08,900 >> I det fall att användaren plockade åtta eller i det fall att användaren plocka 36 00:02:08,900 --> 00:02:14,110 nio, eller i det fall att användaren plocka 10, gå vidare och skriva ut dig 37 00:02:14,110 --> 00:02:17,830 plockade en stor Int. 38 00:02:17,830 --> 00:02:19,180 Bryt. 39 00:02:19,180 --> 00:02:23,970 ELT, om en användare inte välja ett nummer som faller in i någon av dessa 10 fall, 40 00:02:23,970 --> 00:02:25,520 låt oss ha lite standardbeteende. 41 00:02:25,520 --> 00:02:27,870 Som i detta fall kommer att vara såsom följer. 42 00:02:27,870 --> 00:02:32,860 >> Default, Printf, du plockade ett ogiltigt Int. 43 00:02:32,860 --> 00:02:36,100 44 00:02:36,100 --> 00:02:38,220 Bryt. 45 00:02:38,220 --> 00:02:42,870 Om jag sparar filen compile det med att brytaren. 46 00:02:42,870 --> 00:02:44,870 Kör den med. Snedstreck brytare. 47 00:02:44,870 --> 00:02:46,770 Låt oss göra ett par sanity kontroller. 48 00:02:46,770 --> 00:02:48,440 Jag hämtar en Int 1. 49 00:02:48,440 --> 00:02:50,110 Och ID plockade en liten int. 50 00:02:50,110 --> 00:02:52,240 >> Låt oss nu göra. Slash switch. 51 00:02:52,240 --> 00:02:54,514 Och skriver i säga, negativ 1. 52 00:02:54,514 --> 00:02:56,900 Och ID plockade en ogiltig int. 53 00:02:56,900 --> 00:02:59,560 Vid slutet av dagen, omkopplaren konstruera inte möjligt för dig att göra 54 00:02:59,560 --> 00:03:03,320 något som du inte redan kan göra med den mer bekant om, annars om, 55 00:03:03,320 --> 00:03:04,530 annars konstruera. 56 00:03:04,530 --> 00:03:07,470 Men om du har en begränsad lista med värden att du kollar efter, en 57 00:03:07,470 --> 00:03:09,820 switch kan mycket väl göra din kod mer 58 00:03:09,820 --> 00:03:11,310 explicit, eller mer lättläst. 59 00:03:11,310 --> 00:03:12,910