Kull dritt.
Allura issa ejja nitkellmu dwar xi ħaġa verament utli fil programming--
dikjarazzjonijiet kondizzjonali.
Espressjonijiet hekk kondizzjonali jippermettu programmi tiegħek
biex jagħmlu deċiżjonijiet u jieħdu differenti frieket fit-triq, xi ħaġa
I allużjoni għall ftit qabel, jiddependi fuq il-valuri ta 'varjabbli,
jew ibbażati fuq dak l-inputs utent fil l-programmer, fil-linja tal-kmand,
jew jekk għandek pront jew xi ħaġa bħal dik.
C għandha koppja ta 'modi differenti biex jesprimu l-espressjoni kondizzjonali, li
aħna wkoll kultant se sejħa fergħa kondizzjonali programmi tiegħek.
U xi wħud minn dawn huma ser tħares pretty familjari għalik mill-bidu nett,
hekk aħna ser anki iġbed up ġenb ma 'ġenb, just
inti tista 'tagħmel li analoġija fir-ras.
>> Għalhekk, if-- jekk huwa pretty sempliċi kondizzjonali.
Jekk inti recall minn scratch fuq il-lemin hawn
inti tista 'timla dan huwa b'ħeksagon bil-espressjoni blu jekk maws 'l isfel
jew jekk x huwa inqas minn 10, jew xi ħaġa bħal dik.
U mbagħad, jekk x kien inqas minn 10, jew jekk l-maws kien fil-fatt, isfel,
kollha tal-kodiċi ġewwa tal- biċċa puzzle se tesegwixxi.
L-affarijiet li jaqblu ġewwa din il-forma C.
>> Bl-istess mod, do għandna jekk fuq ix-xellug hemmhekk.
Jekk espressjoni Boolean, li jien biss bl-użu
bħala sostitut għal waħda mill-Boolean espressjonijiet aħna diskussi preċedentement,
Brace kaboċċi miftuħa, Brace kaboċċi qrib.
Allura taħseb kaboċċi miftuħa Brace u Brace kaboċċi magħluqa
bħala tip ta 'analogi għall-sandwich effett tal-blokk jekk fuq il-lemin
mill-bidu.
>> Jekk l-espressjoni Boolean fid-dikjarazzjoni jekk huwa minnu,
allura l-linji kollha ta 'kodiċi bejn il-braces kaboċċi
se tesegwixxi sabiex minn fuq għal isfel.
Jekk l-espressjoni Boolean hija falza, aħna ser
skip fuq kollox bejniethom l braces kaboċċi, għaliex aħna biss
jridu jinżlu li furketta fit-triq jekk l-espressjoni Boolean huwa veru.
>> Aħna tista 'tieħu dan il-pass wieħed ulterjuri ma jekk ieħor.
Allura dan il-blokk Scratch huwa pjuttost simili għal dak
rajna ftit tieni ilu, ħlief hija tieħu żewġ mogħdijiet differenti bbażati
fuq dak li jiġri.
Allura jekk il-maws kien isfel, jew jekk x kien inqas minn 10,
aħna ser tagħmel dak kollu li fil bejn li l-ewwel furketta, li l-ewwel C.,
>> Inkella, jekk il-ġurdien huwa up, jew x ma jkunx inqas minn 10,
aħna se nagħmlu dak kollu fit-tieni sett.
U dan huwa analogu għal dak li tara hawn għal espressjoni C. Jekk Boolean,
jagħmlu l-għalf bejn l- ewwel sett ta 'ċineg kaboċċi.
Inkella, jagħmlu l-għalf bejn l- tieni sett ta 'ċineg kaboċċi.
Allura jekk il-Boolean espressjoni huwa veru, aħna ser
jagħmlu dak kollu l bejn l-ewwel sett.
Jekk l-espressjoni Boolean huwa falza, li jiskattaw l-oħra,
u aħna se jagħmlu kull fil it-tieni sett ta 'ċineg kaboċċi.
Għal darb'oħra, fuq għal isfel, Kollha linji bejn il ċineg.
>> Fil C, huwa possibbli li jinħolqu IF-inkella jekk-ieħor katina.
Fil-fatt inti jista 'jkollhom jekk-inkella jekk inkella' jekk-ieħor, jekk, u fuq hekk u hekk u hekk
fuq.
Fil Scratch kienet meħtieġa ibejtu l-blokki.
Inti żid jekk-ieħor, u inti kellhom jitqiegħdu ieħor ġewwa tal-inkella,
u l-bqija, u li ltqajna tip tal nested u kkumplikata.
Iżda C, aħna ma jkollhomx biex tagħmel dan.
Nistgħu ngħidu biss għandhom ikun katina bħal din.
Għal darb'oħra, kif inti tista 'tistenna, kollha ta' dawn il-fergħat huma reċiprokament esklussivi.
Inti tista 'biss qatt tmur l waħda tal-fergħa.
Jekk dan huwa minnu.
Inkella, jekk dan huwa minnu.
Inkella, jagħmlu dan.
Allura l-erba 'fergħat f'dan eżempju huma reċiprokament esklussivi.
Huwa ta 'jekk' inkella katina jekk-ieħor.
>> Huwa possibbli madankollu, u xi kultant utli ħafna,
biex tinħoloq katina ta 'mhux fergħat reċiprokament esklussivi.
F'dan l-eżempju, biss it-tielet u raba 'partijiet huma reċiprokament esklussivi.
Jista 'jkun li inti tista sodisfatta l-ewwel kundizzjoni,
u inti tista 'tissodisfa it-tieni kundizzjoni,
u inti tista 'tissodisfa l- tielet condition-- f'liema każ
inti jinżlu l-ewwel parti, allura inti jinżlu tieni fergħa,
allura inti jinżlu tielet parti.
Jew forsi inti tissodisfa l-ewwel kundizzjoni, u t-tieni kundizzjoni,
imma inti ma jissodisfawx it-tielet kundizzjoni.
F'dan il-każ inti jinżlu l-ewwel fergħa u t-tieni parti,
u allura l-raba 'parti,
>> Ir-raġuni għal dan hija li l-inkella se jorbtu biss lill-eqreb jekk.
Allura anke jekk hemm l oħra hawnhekk, li
mhux bilfors toħloq reċiprokament katina esklussiva ta 'kollox.
Huwa biss l-espressjoni hemm ma Boolean
espressjoni 3-- dak l- reċiprokament esklussivi mal-ieħor.
Għalhekk huwa possibbli, u xi drabi pjuttost utli,
kif għidt, li tinħoloq katina ta ' fergħat mhux esklussivi reċiprokament.
Ejja tagħti ħarsa lejn differenti tip ta 'kondizzjoni, li
inti ma bbenefikawx qabel fil Scratch.
Hemm xi ħaġa imsejħa id-dikjarazzjoni swiċċ.
Id-dikjarazzjoni switch hu tip ta 'pulita għaliex dan huwa
dikjarazzjoni kondizzjonali li tippermetti inti tispeċifika każijiet distinti,
minflok joqogħdu fuq l Boolean espressjonijiet li jagħmlu deċiżjonijiet għalik.
Hekk per eżempju, ejja ngħidu li għandi dan il-programm,
u jien titlob lill-utent li tipprovdi kontribut lili.
So I say, int x = Get Int (), u jekk int ma jkunux familjari għadhom,
jiksbu int hija funzjoni li hija inklużi wkoll fil-librerija CS50,
hekk jekk inti #include CS50.H inti ser ikollok aċċess Get Int () u kollha tagħha
cousins-- GetFloat, GetString, u l-bqija.
Bażikament wieħed Get funzjoni għal kull tip ta 'data li konna diġà diskuss.
>> Allura Int x ugwali GetInt.
Bażikament dak li qed jiġri huwa jien fit-terminal.
Jien titlob lill-utent tat-tip f'numru.
>> U hawn jien jaqilbu dak li qed nagħmel, jiddependi
fuq dak l-utent ittajpjat fil-prompt.
Mela jekk ittajpjat waħda, I jistampa wieħed.
U mbagħad I break.
Jekk dawn it-tip tnejn, I jistampa tnejn.
U mbagħad I break.
Huwa importanti li break bejn kull każ
għax inkella inti se jaqgħu permezz.
Mela jekk jien ma kellhomx xi pawżi hemm, u l-utent
wieħed ttajpjata, dak li jiġri huwa li se print wieħed, tnejn, tlieta, sorry.
C'est tip ta 'mġieba stramba, right?
Għandek mnejn taħseb hekk.
Iżda hemm attwalment xi każijiet fejn din tista 'tkun ħaġa pretty utli.
So here eżempju ieħor ta 'swiċċ dikjarazzjoni fejn I jħalli barra l-pawżi.
Imma I do dan fuq l-iskop.
>> Allura x'jiġri hawn?
Aħseb għat-tieni.
Tista 'saħansitra jridu li nieqaf-video.
>> X'jiġri hawn jekk it-tipi utent erba?
Hekk stajt talab lill-utent għall-input.
U dawn jipprovdu l-valur 4.
Liema gets stampata meta I do dan?
Fuq il-pjastra ta 'qabel, kien hemm waqfiet bejn l-każijiet kollha.
U hekk kien biss print erba 'u imbagħad jieqaf.
Iżda f'dan il-każ, mhux se.
X'se jiġri huwa inti se jaqgħu permezz ta 'kull każ.
>> Allura f'dan il-każ stajt organizzata każijiet tiegħi b'tali mod li jekk it-tipi utent 4,
I se print erba, tlieta, tnejn, li waħda, blast off.
U jekk ittajpjat 5, Nibda għal ħamsa u jagħmlu l-istess ħaġa.
Jekk dawn ittajpjat 1, nixtieq biss tagħmel wieħed, blast off.
>> Allura f'dan il-każ, jien jużaw bidla tip ta cleverly hekk
li jien ħsieb li jaqgħu permezz tal-każijiet kollha.
Iżda ġeneralment int probabilment gonna jridu jiksru bejn kull wieħed minnhom,
sakemm ikollok sitwazzjoni bħal dan wieħed fejn int
tip ta 'lieva l-fatt li tkun taf jaqgħu permezz tal-każijiet mingħajr pawża.
Allura dak l-tieni mill-kbar tipi ta 'dikjarazzjonijiet kondizzjonali.
L-aħħar tagħhom huwa:? So I għandhom żewġ siltiet ta 'kodiċi C hawn.
Wieħed fuq ix-xellug u waħda fuq il-lemin.
Il-wieħed fuq ix-xellug għandu probabbilment ikun pretty familjari għalik.
>> Għandi Int x.
U jien probabbilment għandu talbu lill-utent
for-- dan għandu probabbilment ikunu Int x ugwali GetInt, jew xi ħaġa bħal dik.
U allura jien ma jieħu deċiżjoni.
Jekk xi espressjoni Boolean huwa veru, jassenja x-valur 5.
Inkella, jassenja x-valur 6.
>> Li fuq ix-xellug għandu probabbilment ikunu pretty familjari minn diskussjoni tagħna
tal Jekk Else ftit mument ilu.
Kieku inti tkun sorpriż li tkun taf li l-linja fuq il-lemin
ma l-istess ħaġa eżatt?
>> Allura dan huwa msejjaħ:? Jew xi kultant imsejjaħ l-operatur ternarji.
U huwa pjuttost jibred.
Huwa normalment użati bħala trick ħelu.
>> Imma dak li jippermettilek li tagħmel huwa li jissimulaw Jekk Else ma verament żgħar,
verament trivially qasir fergħat kondizzjonali.
Inti ġeneralment mhumiex se jużaw:? Jekk inti kellhom sitt linji ta 'kodiċi bejn kull sett
ċingi tal kaboċċi.
Imma jekk int biss teħid ta 'deċiżjoni ta' malajr,
jekk int ser tagħmel ħaġa waħda jew l-oħra u huwa sempliċi ħafna,
dan jista 'jkun eżempju ta' kif jagħmlu dan ma ':?-operatur ternarji.
Allura Int x ugwali espressjoni?
Il-ħaġa wara l-mistoqsija marka huwa valur dak X
se jkun jekk l-espressjoni huwa veru.
>> Il-ħaġa wara l- kolon huwa dak valur x taċ
ikun jekk l-espressjoni kienet falza.
Hekk jien tistaqsi lili nnifsi, hija l-espressjoni vera?
Jekk huwa, tassenja x il-valur 5.
Jekk mhuwiex, jassenja x-valur 6.
Għal darb'oħra, bħal I said.
Dan huwa normalment ftit trick ħelu.
U xi kultant jekk inti ssir verament komdi miegħu,
inti ser tagħmel dan minħabba li jidher tip ta 'kessaħ fil-programmi tiegħek.
Ġeneralment Jien ma tippreżentaha lill inti issa hekk int familjari magħha
jekk tara dan.
Imma ċertament taf li inti ma għandekx li tikteb fi kwalunkwe ta 'kodiċi tiegħek.
Iżda hija xi ħaġa li tkun familjari ma ', għaliex inti ser definittivament tiltaqa
siltiet ta 'kodiċi hawn u hemm fejn dan:? sintassi,
AKA l-operatur ternarji, jintuża.
>> Sommarju hekk malajr fuq liema conditionals huma,
u x'inhuma l-għażliet disponibbli lilek fil C. Għandek Jekk u jekk-oħra,
u jekk inkella jekk, eċċetera.
Tista 'tuża espressjonijiet Boolean għal dawk li jagħmlu d-deċiżjonijiet.
>> Ma 'dikjarazzjonijiet swiċċ tuża każijiet diskreti li jieħu deċiżjonijiet.
Inti ngħid speċifikament, jekk huwa wieħed, jew jekk huwa tnejn, jew jekk huwa tlieta,
I ser jagħmlu dan ħaġa, jew din il-ħaġa, jew dan il-ħaġa.
U:? Jistgħu jintużaw biex jissostitwixxu sempliċi ħafna friegħi jekk-ieħor,
jew jekk inkella ktajjen-li jagħmlu kodiċi tiegħek tfittex fancy ftit.
>> Jien Doug Lloyd.
U dan huwa CS50.