>> SPEAKER 1: Senast vi analyserade heltal, minns att vi använde en del
Booleska uttryck för att kontrollera om en användares input n var mellan siffror
som 0 och 3, 4 och 7, och 8 och 10.
Tja, vi gjorde det med hjälp av Ifs och annat om s, men det visar sig att du kan
genomföra samma logik med hjälp av en olika programmering konstruktion
helt och hållet samtidigt som man uppnår exakt samma resultat.
I själva verket kan vi presentera något kallas en switch som gör att vi kan
byta vårt beteende beroende på värdet på någon variabel.
>> Låt oss ge det ett försök.
För att göra detta, kommer jag först kommer att inkludera den CS50 biblioteket genom cs50.h.
Jag kommer även att innehålla standard bibliotek i form av standard I / O.h.
Och jag ska förklara huvud i på vanligt sätt, int main tomrum.
Öppna klammer.
Stäng klammer.
Och nu ska jag be användaren för ett heltal.
>> Printf, ge mig en int mellan 1 och 10.
Och nu ska jag få att int använder CS50
bibliotek fungerar, getInt.
Int, låt oss kalla det n, lika getInt.
Och nu ska jag göra lite analyser i det heltal.
Ganska godtyckligt, men med denna nya konstruktet känd som en omkopplare.
Slå på värdet av n enligt följande.
>> 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
att n är lika med 3, gå vidare och verkställa denna kodrad.
Printf du valde en liten int, paus.
Nu, jag behöver för att genomföra motsvarande av en ELT enkelt genom
räkna upp ytterligare några fall.
>> I det fall att n är lika med 4, eller i fallet att n är lika med 5, eller i det fall
att n är lika med 6, eller i det fall att n är lika med 7, gå vidare och skriva ut dig
plockade ett medium Int.
Bryt.
Nu i det fall användaren plockas ett stort antal, låt oss
detektera att såsom följer.
>> I det fall att användaren plockade åtta eller i det fall att användaren plocka
nio, eller i det fall att användaren plocka 10, gå vidare och skriva ut dig
plockade en stor Int.
Bryt.
ELT, om en användare inte välja ett nummer som faller in i någon av dessa 10 fall,
låt oss ha lite standardbeteende.
Som i detta fall kommer att vara såsom följer.
>> Default, Printf, du plockade ett ogiltigt Int.
Bryt.
Om jag sparar filen compile det med att brytaren.
Kör den med. Snedstreck brytare.
Låt oss göra ett par sanity kontroller.
Jag hämtar en Int 1.
Och ID plockade en liten int.
>> Låt oss nu göra. Slash switch.
Och skriver i säga, negativ 1.
Och ID plockade en ogiltig int.
Vid slutet av dagen, omkopplaren konstruera inte möjligt för dig att göra
något som du inte redan kan göra med den mer bekant om, annars om,
annars konstruera.
Men om du har en begränsad lista med värden att du kollar efter, en
switch kan mycket väl göra din kod mer
explicit, eller mer lättläst.