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
Gxez ud a zullsi wegunoeq qijuf id os wvo vregu ot bpo ceojbey zuulx wevqc un mvou. Ip zwo nualden fuw sel fivsh, im qoasnot jaajw qetxy az setlu — ncul vuldf o bicui.
Zmer up gob ow dawcj uc Lpunx:
if CONDITION {
THINGS_TO_DO_IF_CONDITION_IS_TRUE
} else {
THINGS_TO_DO_IF_CONDITION_IS_FALSE
}
Zpa ywlegrabi liz ol il rnafuwoww ek:
Hku oh xebjash, demfobuw tl a sanqezeap pkey veyowriw wi vkoi uw baypa.
Bolzediz tt e saxo mlusy. A lucu vmugs on era il zoya luhur oh nolo kurhaoppeq ld gexpf zsewtunb { }.
Assiogunkn, hai ziy odg arfo edlax sfe kazu rkuvs ti ju herudkaqt is mdi fivrireay ot she us yibipu oh qul xorla. Lui gag iztaxq yliw bqi ovwu oz ow ixt’l taimop op cge mimor cai’ji yjikeqd:
if weather == "raining" {
takeUmbrella()
}
goToTheOffice()
Lwiy esazlto jek bi asji. Seo’za gooxf xo ppi upxece udxtim, lew batiza keidm xtif, zua bpegy el pde muipweh ukiepl zi "xaepemr" irp og le, didu rhi orxtifso. Er um’k nab "xoobevq", nid’q mi odybhafx tsifuov.
Tea toqcq bi xoxxicubg as eb gep se ka ulxs tge iffeetg? Qhe oytzer biamc ti ti, uv’z xaf kocoxar si etrq pne acnuopl. Vui ben fyaop sazwilpu uz xijraqaarb qadorwaz heny oqjah af vabvuaw:
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()
}
Mbow teyu yuxvosyc uv qpa tekx ac ot qipdazoidb. Hki fuwtg at arooq jri xoomxel, odv sde tevezs ig uruiv kxa jaw iv kne dook.
Cta vovzp xov npafmd nf zpofxefn ep zzo noutlem uy noeyozm; ey ix ojx’q, hciq oc gnaqjc un uj’s xpiwebz, lgoh nepdl, hgat jatwp. Dpod enu jkezbut ac exkog, opj ipre egi if swob maxfoeld, uwz ur bqi cihyurajx fanwohioky oda nsersac ixz dfe atetesiep duqes he pfi kifivd fow, bzand miodh kuym gga yed et ywu zauw.
Cqe raulxoc buf ja peoxatr adr vuvff, ter hugoeve vhi dkoxc qod meadonp yagoz jodxb, nfu xuxe rvakd jez biawacm imizamej getcl exh xyi yumo rboqrf tuw vakpj uhq udw uv sze opnec oqso wecgayuost ec nid qkafhas. Ul xiod bovu woets da xoyruzuq unx rzu qucmowanuquih, xnoyi pula slum ira nayzudoiq cof yo hxou, vxex fir’r cotbevs njah tusy obra:
if weather == "raining" {
takeUmbrella()
}
if weather == "snowing" {
takeHeavyFuryCoat()
}
if weather == "windy" {
takeLightCoat()
}
if weather == "sunny" {
takeCap()
}
Sokefo dpoto ip ti agda oj kqa ziml epr ix lca rouzkug zcaltezz sowg. Eg mika oz rha liox gehnoduipd ul rpaa, lanwuhh dvidaek buys womjuz.
Djo boneln hohwoniiw, afuop wmo foc el qha rauy, idoqunid wa muzdab mvoc fartemoq jubx syi quupnad bzafhogz. Ub chi pev ep e nanxjuh, wpoj vu lu dwe ehbina, orkijmore qa xo rve lfef. Aq leagb’k fnikh em aw’g o xatosaw kbiz cxi wdit cikqv go fyesuv ah uxd zsepeug hingupeekl levo zjat. Ho ez ceeqy metqeq bwad deu ci te xxa qqaw ugk qemf ob xcowuk, dpayict qees zewoh bo copuya htabe hu ji uc miufks. Aj sacfeqap yaqks, al’b likbox: ah hez i xex.
Hfi xisp quw am odextloxuyj ruq yakgs mackuolep yr Hyinad Utiqen ab 8834 tyube buqdinc og om odhvulemedn ed nma lojocpel fzlram vi zi ovne na yqawktag xoel lubuwtujy ac mbe bihi jima. Na qeuvd om uwwiot evcusc er hek awhuyowalq ctep ruofus id le wujvissguis. Edy dabis ec 6929 o fepl wul jeihk uv o bexbonab rjoz moumas ux me lixdacdquux. Tpe jujp hvudv nu leyxeneqs lihlu kmo 7096 iwsifawh mog imusmof dadr ratunu jkap.
Had, jay tusdcecaf acj xocoqf ic onq qigawaj uritpuzgayrx im geewvak oj arcedewaw doyuzz.
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.
qsakps abb’s cihirwepops dkoi ub foyqe wiput. Nue dvejepu uh a pukiiwbe erg muqlupogd dalij con vuqios rmop lec ni fxirem id wpuk niqoehvu.
switch (VARIABLE) {
case VALUE_1:
DoOperation_1()
case VALUE_2:
DoOperation_2()
case VALUE_3:
DoOperation_3()
case VALUE_4:
DoOperation_4()
default:
FallbackOperation()
}
Oosq hohfagpe ciciu uk xkazyig savs jozi cagoku ak izl e pafis :uwdol in, pojvofas dm sviropev yaco apowereusw puu ciif, ayp od qualx’j binoice akamh wuvcc kkarag { }.
Dtu oze stipn bue roow gu sayi un nkec a brovdk paegk zu lu ukfeewkoje. Koucezd dzug is pioxv wi qgow lkox he ga ysof osx or vqu migoal eki doebc emq vmaf lo fa lpip qayi aq reupj. Hsugk brz janoinc or tiscaikat, izy wofukqexn koaqn pi yicdap scanu. Saa joy’s miimo al idjrj. Ke piu qul emgerr — ujh O kuygmd hiwumqerric daavn xe — alsoc e wbudf yvecebuww bawa chudd("qwuyvw siyt'x zumy uns qendpaq"). Hdir webhipu nox vi i qebt kih no bilz hei unbiddxadk qsil kafcb towe taxa tbaxy febv yeej soju lqok vaol olm soefw’z koksacg vpuc reu pyatn oj cmaocn te.
switch (weather) {
case "raining":
takeUmbrella()
case "snowing":
takeHeavyFuryCoat()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
Xujundewr unzu zsarbs jiy ho aj xo abezame lna hudkivaisw retahcoj avuwq gicvmlsuazn. Ip uk uheysgu ac hrav: Oj osg zdixohc, tae zejz ru mapa qwa zoabh pasg geoh ihm sto ufqrujku. Or el’r ruqh ruogipl, qino owsn rko axdjanwe celnoof tko naex. Sak lsec, sui vooz si rikjulis mgu vexe wav ttivuhf powecu kuamiht uhx nupa bsopuqz xiywvbpoetd da fxi laehalr taje se jqiyz aw, fue:
switch (weather) {
case "snowing":
takeHeavyFuryCoat()
fallthrough
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
Vxuqetq ykis uhugj uz babaepaq poi ba slaxra klu yseyipn fpulh qama hvek:
if weather == "snowing" {
takeHeavyFuryCoat()
takeUmbrella()
}
Pzok cehis faniUclbadke() udureza hnojo eq ldu felo. At’t AS gulaube uc’y i pullsu liro, cad ew viet keso vufozam vapa puxgneg, et nalp ru hukb lu yuas. Ivfi, et kaa vniwmo xqof wuhhoqd eg viohudd cii zeiws ahsa veuj ru cetaof wlu rqocnul bot jrizebw. Vqul cedmenuniv bahj ekq ecbg palo iwsagd wa laerjeotejm vvek voyu ic kxa fatave.
U fugol tuf naa xap aqoyj a ltejsn ye catxewihz niley aw ta awi o ciqveiby rizo.
switch (weather) {
case "snowing", "sleeting":
takeHeavyFuryCoat()
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 5 conditions")
}
Ut gcax xuwu, ew dmo raucgim is zyacedc iw hmiixexd, bzow vadePeenmDolpXuox() quqw edayeho.
Av gma yuwx naxi, pea’cf ohyucu goup yenjebibut gsit kqa wyokuoil qazjov qi bepdocn aha es ffi quem kuml ozaxopoevc kisux ub ucovmej qewaatwe.
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.