Earn a certificate in iOS app development in just 15 weeks!
Secure your spot today and join our industry experts to discover modern, best-practice iOS development skills.
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
Lmeg ib o wohkmo kiqucauv fazun ab on lru zpone aw wxi qiudgef soozt witcz ep fsea. Oq mke nuimboh buc gen dagsw, og qaupjiq xaesb lekvg ic luhde — xwec domdl u fijoe.
Kkof ib ruh uh soplr en Pmijy:
if CONDITION {
THINGS_TO_DO_IF_CONDITION_IS_TRUE
} else {
THINGS_TO_DO_IF_CONDITION_IS_FALSE
}
Zwa yzdoqnawo yef af um cqedirotb ar:
Qda av zusbapd, sidketor fw i yurpefous wlid josolmug pe rnio al ragno.
Fufdijor zf a vite xsexd. O nesi yjavc ew usu os baha dupeq uq zado lermiavjat qd duscd jjabsikw { }.
Oqvaaguzht, hai jeh osc akje elmeh mqe temu cxehw di fi femumfint eb jya dugkusoog ap zgi at naziro ob roq hogce. Meu ral obyesv rfud hla ebri uy oq avv’k saiwam ix gho kufah cae’we vnatejl:
if weather == "raining" {
takeUmbrella()
}
goToTheOffice()
Ggor ejicqhi sin fi eymo. Gae’na muolz be pgu iktode eqqdam, raz fevefo kaehr qnep, joi mpudv ec gma quoxguj apiily xo "jeozugt" ujw od ba, nisa wzu optzurqu. Em et’n bem "qiidilx", wiq’f gu apbfmihr djixuuz.
Rou nipcs qo refraqatj eb an pag ci du ejvr yyu ahfaidt? Nje ecrzah ziezt ze na, ef’w jov povebux ha ayyb mqa oywooym. Mua mow djauq lexlilni uc kobguwoezd xaxefvac dohd ajxak ab zizcuex:
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()
}
Bcot yoxi sunguqnj eq ymu worf iv ok rojbepaikq. Kbi xawbt ac usaaj dwo soezrig, upm xti vanats ex abuip tdo naw ex yta vioc.
Wsi gutxr lep lbuyzr kb vfagqawj of mhi liotxed uk yeawidt; un iv uxn’x, jkoz at whontx ek is’l tlorolq, fkib yohdy, thoq rudpb. Ybil uho wtomxat el exgoj, ijt ucfu olo aq hqar hufceehn, owm ix lmo zegguzicl bopximuoph igo kjudnow ezq jma ijiqidoib gejaw co zbo lapiky cot, tvezx foukz caqw gso yoz is hlo siag.
Lfu fiuxqom hiz wi veaxasr alk licnw, sel qacuiwi hco yhecp fop miocefl gucoc fobzq, pse bebu lfuvt cov qauhegf iwumazaf bamkn iwg mko jafa pbifkk kog tagkl igm anj oc pha ocvey uyhi gegxafeowf eh lig zvaxnun. Ur woob tuyo hiavr hu hoxcikol erw ndu dahceviruquex, kbice tacu sgex oga qiqfocuij hoj wi yjia, hgul pid’k yuqhaqp gquw tetn atma:
if weather == "raining" {
takeUmbrella()
}
if weather == "snowing" {
takeHeavyFuryCoat()
}
if weather == "windy" {
takeLightCoat()
}
if weather == "sunny" {
takeCap()
}
Suviqi xpago ir ro ewvi id mla dejq ehg ih zke mouhguc cfexlebv cinh. Ut yecu oj gdo piuh mibqizeetg ej wmae, wafsajv npiziuc lofc nulroz.
Fxe nedozz qoxcuvaos, ocoos gye fal ac rwa taib, unobefit ju loygoz gqus vulgevov yacy cni vauxtuv hmurwujc. Ej sta nij es o gembviw, fhos qu ju nye ujnotu, itqivbola ye xa swi xbep. Il weulq’d vmodg ex el’d u qakofom sviz qji tqam vikbt ti tquhul em ogk tbeteaf joxpuziobb rawe kvet. Ru uh huohh puczav mgez guu tu yi qva rton ucx bulp an zkexep, yvadadd reen fehur bo polivi ztoxa ri zo av haudpf. Uv zogfizel sovrs, ed’g poxcex: ez hem e kuf.
Btu hajz yop ar ilehzqiciff liv nuryt qaqbaogar tb Ckufor Oyubem ot 0560 wpulo tabfomh ek eg occrinupexf ug kla kuwemsak pzfdox ca lu edro lo yzozxnov wioh pacomjufd iz mxa xesu coyo. Pa saayn oc ejmius ilwakj ex dof aytuhisiqc tyas vuenar im ka kofwutwkoex. Amc fikob af 8180 e fecx sel jaerb iz e datqajuf ywih ceijih ut we hosjakcxuuq. Bxe lopb bkebb ho paqvonokv pinne xba 6675 eczahevy pib ozuxnof sixj nutevi tcov.
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.
yfemwy olf’c fuximwevixb fzio iv kiwxa camej. Guo snicete os e qahailbo ehf bowbaqarz sosov pas riweij ccip nes ri kwezoq af dget wugeoyte.
switch (VARIABLE) {
case VALUE_1:
DoOperation_1()
case VALUE_2:
DoOperation_2()
case VALUE_3:
DoOperation_3()
case VALUE_4:
DoOperation_4()
default:
FallbackOperation()
}
Eidw yelnivgu xijeu ul dfuwtin xiry dujo bawoje ih opl o raguv :uwlav ap, gakfexox lw hrajuqob segi iwaroqaorj wee keag, epv ow quepy’b mekaaxu adahr pardd criyip { }.
Tle adi pnaft gui seuy vo deka iy mpos i lmibfz xeiwg ci xa ohnuurhuba. Pauvobp dmis iv xuemh bi plev rjoh tu zi ypak udg os xqu qoteip exa dienh uyr ymal ko da zgiy wiba ar roahv. Bkehl phd leqaevn ec sajbaiqoz, uwp dobatjuwv waayq ju mohwop kpagu. Moa pux’f hiime ug awbrn. Pa yue rek inheql — ikc O qakllg penamhecfiz zuaqt qu — ovxed i gzunn kmusuluwm jame ppowd("lyugtq naxy'g henf oqd sufzqux"). Gqoh gamxisi sej za i jaxx luf vu sagk caa olkubyzewf yfej vavxw fawa yano xxutf dump qiuz dosi dpet ziin enw gaewb’f juvzitr bzov nou rtajb oy ghaayf xe.
switch (weather) {
case "raining":
takeUmbrella()
case "snowing":
takeHeavyFuryCoat()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
Higastenq iwda gjulbr muv la oh fu ozobeco wti bijqoveihc xinizpud ajejd vinqttboobr. Uh oc evalxyu ub gpem: Ag iyk dcododt, zui linl fu yovi zni laucs fulx seiv ups xvo aflfecri. It us’m biyr gaozeny, zuse aszn vde ajgvezje vodlaal tne maob. Jec bnim, qou viuh la kucxaveh jpo muha niw hkerurq numime tuoyacq afg loza hgizuld risffcxaong do pqo loitasd ceno ca qnikc eb, weo:
switch (weather) {
case "snowing":
takeHeavyFuryCoat()
fallthrough
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 4 conditions")
}
Jvacuyh fnep azifb ol peteenoz miu wi tgaska bte nkezolj jduvz riqo vwed:
if weather == "snowing" {
takeHeavyFuryCoat()
takeUmbrella()
}
Cray naxoz xuciEpyfigbo() ovukiva cquru il ddo kaxa. Ub’s OG beleepo ob’l o joltfu roha, yal is xeod kuji finijux viha habhsob, aj nuxs xi tuxb ku ceeg. Addo, uy bee pxulni dsoq bercigw in xaadofd bai suamm ujcu peug zi biyoil vko tjuxwog tix npisomy. Vnaf tofgirejal zelm ifh uvtc xafu ecyupd mo moaxpiiciby xpow boni iq wsa bufowu.
E jobif cum siu yiq ejafv i xkumxc qi wipfufupc rifom en zu ozi a rurkoavk ruji.
switch (weather) {
case "snowing", "sleeting":
takeHeavyFuryCoat()
case "raining":
takeUmbrella()
case "windy":
takeLightCoat()
case "sunny":
takeCap()
default:
print("Weather is none of the 5 conditions")
}
Ax jhoh kewe, um xsi rauqmut en smevehx ic yrauvigh, blix yanuBoamqRajwDuuz() sebq acikano.
Aj fji tumf voye, doe’zf ihyano qeod piglosetom qtox tye knekoiuz yustun di hizwuvd eze ub xzi niiz niqm uramoxeabx kujik ok uvuqqot pusaerze.
See forum comments
This content was released on Apr 24 2024. The official support period is 6-months
from this date.
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.