>> Spreker 1: Die laaste keer wat ons ontleed heelgetalle, onthou dat ons gewoonlik 'n paar
Boolse uitdrukkings te kyk as 'n gebruiker se toevoer n was tussen getalle
soos 0 en 3, 4 en 7 en 8 en 10.
Wel, ons het dit gebruik as se en anders As se nie, maar dit blyk uit wat jy kan
implementeer wat dieselfde logika gebruik van 'n verskillende programme konstruk
heeltemal, terwyl nog die bereiking presies dieselfde resultaat.
In werklikheid, kan ons iets stel bekend as 'n skakelaar wat ons toelaat om te
skakel ons gedrag, afhangende van die waarde van 'n paar veranderlike.
>> Kom ons gee dit 'n probeer.
Om dit te doen, ek gaan eers in te sluit die cs50 biblioteek by wyse van cs50.h.
Ek gaan ook om die standaard te sluit biblioteek by wyse van standaard I / O.h.
En ek gaan die hoof in om te verklaar die gewone manier, int belangrikste leemte.
Maak krullerige stut.
En nou gaan ek vra die gebruiker vir 'n heelgetal.
>> Printf, gee my 'n int tussen 1 en 10.
En nou gaan ek te kry dat int die gebruik van die cs50
biblioteke funksioneer, getint.
Int, kom ons noem dit n, gelyk getint.
En nou gaan ek 'n bietjie te doen analise op daardie heelgetal.
Ietwat arbitrêr nie, maar met hierdie nuwe konstruk bekend as 'n skakelaar.
Skakel die waarde van n as volg.
>> In die geval dat n gelyk 1, of in die geval dat n gelyk 2, of in die geval
dat n gelyk aan 3, gaan voort en voer hierdie lyn van kode.
Printf jy opgetel 'n klein int, breek.
Nou, ek moet die ekwivalent te implementeer van 'n ELT eenvoudig deur die
n opname 'n paar ekstra gevalle.
>> In die geval dat n gelyk 4, of in die geval dat n gelyk 5, of in die geval
dat n gelyk 6, of in die geval dat n gelyk aan 7, gaan voort en druk jy
pluk 'n medium Int.
Breek.
Nou in die geval van die gebruiker gekies 'n groot aantal, laat
ontdek dat as volg.
>> In die geval dat die gebruiker opgetel agt of in die geval dat die gebruiker kies
nege, of in die geval dat die gebruiker kies 10, gaan voort en druk jy
pluk 'n groot Int.
Breek.
ELT, as 'n gebruiker het nie 'n nommer kies wat val in enige van hierdie 10 gevalle,
laat ons 'n paar standaard gedrag.
Wat in hierdie geval, sal soos volg wees.
>> Default, printf, jy opgetel 'n ongeldig Int.
Breek.
Nou, as ek spaar die lêer kompilering dit maak met skakelaar.
Doen dit met. Streep skakelaar.
Kom ons doen 'n paar gesonde verstand kontrole.
Ek haal 'n Int van 1.
En ID opgetel 'n klein int.
>> Kom ons nou doen. Streep skakelaar.
En tik in sê, negatiewe 1.
En ID opgetel 'n ongeldig int.
Aan die einde van die dag, die skakelaar bou nie in staat stel om te doen
enigiets wat jy kan nie reeds doen met die meer bekende indien anders as,
anders bou.
Maar as jy het 'n beperkte lys van waardes dat jy die keur vir 'n
skakelaar verklaring baie goed maak jou kode meer
uitdruklik of meer leesbare.