1 00:00:00,000 --> 00:00:00,440 2 00:00:00,440 --> 00:00:03,440 >> SPEAKER 1: Sidste gang vi analyserede heltal, minde om, at vi brugte nogle 3 00:00:03,440 --> 00:00:07,810 Boolske udtryk til at kontrollere, om en brugers input n var mellem numrene 4 00:00:07,810 --> 00:00:11,580 ligesom 0 og 3, 4 og 7, og 8. og 10.. 5 00:00:11,580 --> 00:00:14,990 Nå, vi gjorde det brug, hvis s og ellers hvis s, men det viser sig, du kan 6 00:00:14,990 --> 00:00:17,990 gennemføre den samme logik ved hjælp af en anderledes programmering konstruere 7 00:00:17,990 --> 00:00:21,400 helt, mens der stadig opnå nøjagtigt det samme resultat. 8 00:00:21,400 --> 00:00:25,000 Faktisk kan vi præsentere noget kaldet en switch, der tillader os at 9 00:00:25,000 --> 00:00:28,660 skifte vores adfærd, afhængigt af en værdi af variablen. 10 00:00:28,660 --> 00:00:29,840 >> Lad os give det en chance. 11 00:00:29,840 --> 00:00:35,730 For at gøre dette, jeg først kommer til at omfatte Den CS50 bibliotek ved hjælp af cs50.h. 12 00:00:35,730 --> 00:00:39,960 Jeg er også kommer til at omfatte standard bibliotek ved hjælp af standard I / O.h. 13 00:00:39,960 --> 00:00:44,540 Og jeg har tænkt mig at erklære vigtigste i den sædvanlige måde, int main tomrum. 14 00:00:44,540 --> 00:00:45,650 Åbn klammeparentes. 15 00:00:45,650 --> 00:00:47,100 Luk klammeparentes. 16 00:00:47,100 --> 00:00:49,720 Og nu vil jeg bede bruger til et heltal. 17 00:00:49,720 --> 00:00:56,990 >> Printf, giv mig en int mellem 1 og 10. 18 00:00:56,990 --> 00:00:59,310 Og nu jeg har tænkt mig at få at int bruge CS50 19 00:00:59,310 --> 00:01:01,590 biblioteker fungere GetInt. 20 00:01:01,590 --> 00:01:06,140 Int, lad os kalde det n, lig GetInt. 21 00:01:06,140 --> 00:01:08,500 Og nu jeg har tænkt mig at gøre en smule analyse på dette tal. 22 00:01:08,500 --> 00:01:13,120 Noget vilkårligt, men med dette ny konstruktion kendt som en switch. 23 00:01:13,120 --> 00:01:16,530 Tænd værdi af n, som følger. 24 00:01:16,530 --> 00:01:23,240 >> I tilfælde af at n er lig med 1 eller i tilfælde af, at n er lig med 2, eller i tilfælde 25 00:01:23,240 --> 00:01:28,150 at n er lig med 3, gå videre og udføre denne linje kode. 26 00:01:28,150 --> 00:01:34,480 Printf du valgte en lille int, pause. 27 00:01:34,480 --> 00:01:37,610 Nu har jeg brug for at gennemføre tilsvarende af en ELT simpelt ved 28 00:01:37,610 --> 00:01:40,990 opremse nogle yderligere tilfælde. 29 00:01:40,990 --> 00:01:47,180 >> I tilfælde af at n er lig med 4 eller i tilfælde af, at n er lig med 5, eller i tilfælde 30 00:01:47,180 --> 00:01:53,830 at n er lig med 6, og i det tilfælde, at n lig 7, gå videre og udskrive dig 31 00:01:53,830 --> 00:01:58,000 plukket et medium Int.. 32 00:01:58,000 --> 00:01:59,490 Break. 33 00:01:59,490 --> 00:02:02,300 Nu i tilfælde brugeren plukket et stort antal, lad os 34 00:02:02,300 --> 00:02:04,940 detektere, at som følger. 35 00:02:04,940 --> 00:02:08,900 >> I tilfælde af at brugeren plukket otte eller i tilfælde af, at brugeren vælger 36 00:02:08,900 --> 00:02:14,110 ni eller i tilfælde af, at brugeren vælger 10, gå videre og udskrive dig 37 00:02:14,110 --> 00:02:17,830 plukket en stor Int. 38 00:02:17,830 --> 00:02:19,180 Break. 39 00:02:19,180 --> 00:02:23,970 ELT, hvis en bruger ikke vælge et nummer der falder ind under nogen af ​​disse 10 sager, 40 00:02:23,970 --> 00:02:25,520 lad os få nogle standard opførsel. 41 00:02:25,520 --> 00:02:27,870 Som i dette tilfælde vil være som følger. 42 00:02:27,870 --> 00:02:32,860 >> Standard printf, du valgte en ugyldig Int. 43 00:02:32,860 --> 00:02:36,100 44 00:02:36,100 --> 00:02:38,220 Break. 45 00:02:38,220 --> 00:02:42,870 Nu, hvis jeg gemme denne fil kompilere det med make skifte. 46 00:02:42,870 --> 00:02:44,870 Kør det med. Skråstreg switch. 47 00:02:44,870 --> 00:02:46,770 Lad os gøre et par sanity checks. 48 00:02:46,770 --> 00:02:48,440 Jeg henter en Int 1. 49 00:02:48,440 --> 00:02:50,110 Og id plukket en lille int. 50 00:02:50,110 --> 00:02:52,240 >> Lad os nu gøre. Skråstreg switch. 51 00:02:52,240 --> 00:02:54,514 Og skriv sige, negativ 1. 52 00:02:54,514 --> 00:02:56,900 Og id plukket en ugyldig int. 53 00:02:56,900 --> 00:02:59,560 Ved slutningen af ​​dagen, kontakten konstruere ikke muligt for dig at gøre 54 00:02:59,560 --> 00:03:03,320 noget, som du ikke allerede kunne gøre med den mere velkendte, hvis ellers hvis 55 00:03:03,320 --> 00:03:04,530 ellers konstruere. 56 00:03:04,530 --> 00:03:07,470 Men hvis du har en begrænset liste over værdier at du tjekker efter, en 57 00:03:07,470 --> 00:03:09,820 switch-statement kan meget godt gøre din kode mere 58 00:03:09,820 --> 00:03:11,310 eksplicit eller mere læsevenlig. 59 00:03:11,310 --> 00:03:12,910