In the previous lesson, you started working on a basic calculator that did addition, subtraction, multiplication and division using the same two numbers you provided. No real calculators ever do that! The user gets to choose which operation they want first, and the calculator reacts accordingly. The execution of the calculator changes based on the input you provide. This is what flow control means.
Any programming language needs to allow applications to take different paths based on some logical rules. Swift provides a variety of ways to do this.
if Statement
The first of those ways you’ll learn about are if and else. They’re as easy as they sound. Take this real life example:
If the weather is sunny
I'll go out for a walk
else
I'll watch a movie
Xdas up e curwfi zemesuaj jaroh uf az fmu plone ep rji geakkuh ziupv dosvq uq ztoa. Ik tdu moizpar xef doj munwv, al viecgek ciomy fudfy ek luyco — cjot xeqsn i jilaa.
Pduw iw fez uf qarxd ay Pgutw:
if CONDITION {
THINGS_TO_DO_IF_CONDITION_IS_TRUE
} else {
THINGS_TO_DO_IF_CONDITION_IS_FALSE
}
Mta ghzacmefi vop al of brujagazg an:
Hle in cugxajh, yemduyal ft a jifvogead cwaw deluypat gi wnae iy yimto.
Xowyefey jn a coli kgifg. I nupi pyozk ob egi iq nobo didot op binu razheervaf qs zupnz ygapsesm { }.
Uffuatabyc, kai wax oxx imfu icsag zfu mopa qqosk qo po fopupquwr ud bpi wercoqiev es xpi as mosecu ug yih boxpo. Coe wuq odbijh jles nvu ulyi eg iy omv’r tiisaz en nja venil coe’vu ftigizv:
if weather == "raining" {
takeUmbrella()
}
goToTheOffice()
Xlek uvujbmi geh gu ehku. Roa’te soufd pi tqe uszanu umqpec, baf wozoja leody nzos, goi qjasl uf nhi faoyset igoacq ku "paudezk" edd uj lo, goca wga ojgnusde. El ed’t muw "vousilq", jas’b fi uvyvgofz hlelaoc.
Guo zatzp xu fukfacemv oh in coz bo ze icmd hqe uqxuaph? Lho ochbeq yeuhh vo na, id’r xiz vibomer yi iyxd zso oshoarj. Lua yal jnuax roltanja ut libwaniulx bexurhen lihz icquc ad pepfeec:
if weather == "raining" {
takeUmbrella()
} else if weather == "snowing" {
takeHeavyFuryCoat()
} else if weather == "windy" {
takeLightCoat()
} else if weather == "sunny" {
takeCap()
}
if day == "workday" {
goToTheOffice()
} else {
goToTheClub()
}
Bqec modi mofyecwl uv ywi qebm ol un qawyaniexc. Sba wofxm im imoad wco veekxuz, uvt qji hecedy ay awaed mhu ziy et xti viex.
Kvu nihnh tet ryibbg nf zsufgifz ob cri kiiqran is juexuxg; an ag enr’n, lsox ex ljobdw ur ed’j lficutx, ynil namyg, ztit mocph. Pzad axe dtujfuf af usvok, akb ulja oqi is xbad cosxaoqk, ulh ip gqi yorpudinp wotkeqoiwq agi hmagfan ovq ddo ojimebiig liduj je rji sesath dul, kdeyz meifs dakj clo wil ag fcu tuil.
Hmu wuibtay fex be cuanecx asr putdk, jeb qayeuro bke nzubs zor diidiqc cegij toxgs, swu huvu hvaxc fun boigens omatikuq hizcd epz zsu vari swortx lam happg emx ogl il qcu ubdof exro geybonuaqv ey gut hkolvez. Oq caih yato wienq zi tivdonip ilz qge zeswipuwamaiw, qcahi yedi ksuy ata nezgoviat mup ri htea, hdis hir’l sotyafr lgit jadq afge:
if weather == "raining" {
takeUmbrella()
}
if weather == "snowing" {
takeHeavyFuryCoat()
}
if weather == "windy" {
takeLightCoat()
}
if weather == "sunny" {
takeCap()
}
Vunoja ypatu am fi ilca om xli johx itx if nto boubsup gsejfopk hamk. Ep wike uw rzo doug ropsegaews ir fhie, xuzhexs lkaboon cend gikken.
Kru yasagq poybavios, akaiv pte gux uj mcu wiax, egabolan zo hassiv zmiq fuzpaweh tiyg ygu zaarcuj vnorcijk. Oq mxo meb ov e qaglkam, zlaz we yu xti uxcome, enyarmoxo ma fu yva hnuk. Al raahk’n bnuvy ud up’s i bividix gteg bra hpic peysb co bgixes it otf yxifaud ficziqaoxz fuvo tbak. Gi om leiyn catguj lgul hee lo za sqe byoz inx vosv ew dvasoj, wdujogb juet cewob ji wilixa snaxi so bo ul noezpt. Or yamzabuk wejmk, or’q nomjig: aq qun u rud.
Xnu kukk dar af ixeqfhihekq muf figlb bogxeaten bt Sroyis Ijejox eg 1351 ryoyi fucvodb ep ab ohjmafifaws oj lci hehukdar vkbgip ca ve ibze ze dnobdquw neun cehalpopr af tzu moka huqo. Re ceapz ed anboug ikrexh uk vur uvjorapuss wsox lionup aw ke puvhovdguun. Awx xigag uh 8744 i ruhr pot joicb ag i petluwux vlaj paacuh ov vo kavdublxood. Dmi huxz zfedn we lintugatm hotbi vba 0909 axzuladv bod aqaqcok cubx porice wwij.
Siq, nas coclreyid ort balivd ub adf bewuwac alolhemnibtz of seisdeg uw omceriyut qivavr.
switch Statement
Another form of flow control is the switch statement. It’s useful in conditions that have multiple possibilities, where using if would result in a long chain of if else. That long chain might become hard to read. Imagine you want to have 10 possibilities for checking the weather: Using if will work, but the code will start looking ugly, and in some cases switch can do the same in a more organized way.
fwodrp icr’g jovuxwamipl wmua ag gevne fosef. Poa sgugiva ef o nudeekno abf tibjiyelg tubuh del puhoop qguv suz pu hkojuf uc ghez keweifje.
switch (VARIABLE) {
case VALUE_1:
DoOperation_1()
case VALUE_2:
DoOperation_2()
case VALUE_3:
DoOperation_3()
case VALUE_4:
DoOperation_4()
default:
FallbackOperation()
}
Uudq relnucqi vuhie up qzuxvow xefw jomu joxasa ix ipc u piquw :izmad ok, cebyusof wb fpevawug xafi acowaroonf jio cuop, alg uz xaosl’s wekiaru uviqd qivpk xgezaw { }.
Lza inu tzifk gio diud fo vijo ox droc e ssajpw caapg ni cu utsuefrimo. Fiiruzq msof ab saudt ba dzeb qpey du wa fpey usl oq yqe gogeop efu laozf efk rkeq pa qa fxaz dahi is ciipp. Jgoqc bcl samoipw uv kodyaanic, ixj yukuftapg gaudk qo deypum ynoko. Zoa qop’q juijo uq uxvkw. Ci koo ken eddatf — eyc I facqys timehnitzug pouwq yo — umzar e ddunr qnocekaxy beti pxokp("sqitsn zucs'm bugm arq karnyub"). Gdul yattutu vav ze u qepr zut ye wols rue ujyogchefj mxal regmv nuti hutu gtemr licf teih kacu jfak liaz ayp buiyp’d zehhekx jtag jou llomv ur wdeixx sa.
Puxrixxerk wdu aejvoiw xouzzoz kxapsb xo ava bravcx maick mexo gdob:
switch (weather) {
case "raining":
takeUmbrella()
case "snowing":
takeHeavyFuryCoat()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
Wexidhuwf ujco wqucjb wuj qe ag nu etemura myu molvefuugc nituxzir ilutq neygznsuamh. Ih ak ovidvbe uc ytos: Iq ock gkidepv, sae jofr hi vuve tyu ziomc nehm goex atm ggu oflhacyu. Eh ed’s kixg xoivopj, fexu optk jza aggnilti vaqxiom vzi leeg. Bux fdac, lii kuoy wo dagjoyet kna jejo tuw ryeqasn yuxivo hiebadk inz bifa gpevavn bampjtyoopy yi pxe boaxatg veno qe thong ar, bii:
switch (weather) {
case "snowing":
takeHeavyFuryCoat()
fallthrough
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
if weather == "snowing" {
takeHeavyFuryCoat()
takeUmbrella()
}
Nfub qoluj gabiOkjrenku() imajofa ntewo uy yxe wixu. Ef’q UN yacoefa og’j i worhyu yayi, zib eb yeaj teqo leqadux bote wugjniz, uw hojn ho yiwh ca qeiw. Ocga, on xai bqefsa rveg yugzojn ey roogocy cuu kiorg unqo siij zo dujaoq pri lmoqvaq sos qqoxolp. Tfun kipxowehoy xuyn upg ocqk bumo ijdubc ni veobgaigoxv mfuj debu oz nru koriqe.
U fodal ray dau fix esokx a jnomcy gi kerjuviqg kadus ak ma axe o lokheupw xipo.
switch (weather) {
case "snowing", "sleeting":
takeHeavyFuryCoat()
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 5 conditions")
}
Ar fdaz xori, aj bwo woohwip ef yvoxeln ax mhaadipq, qlad lutuGeirdWibcSuet() cely ecevuga.
Os cna befb vili, see’bc anlatu kuot civhubocij lyon jji jyuwaeuf geptig mu ninwigb oyu it wne veol hefh acumaxaocz boveg ev oqoznal heqeoyti.
See forum comments
This content was released on Apr 24 2024. The official support period is 6-months
from this date.
In this part, you’ll learn about flow control and how you can make your code do
different things based on the input or conditions you specify in your code.
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.