Programming Your App to Make Decisions: Conditional Blocks

3URJUDPPLQJ<RXU$SSWR0DNH'HFLVLRQV&RQGLWLRQDO%ORFNV
7HVWLQJ&RQGLWLRQVZLWKLIDQGLIHOVH%ORFNV
,IHOVH6DPSOH&DOOLQJDUDQGRPIULHQG
3URJUDPPLQJ&RQGLWLRQVZLWKLQ&RQGLWLRQV
3URJUDPPLQJ&RPSOH[&RQGLWLRQV
6XPPDU\
3URJUDPPLQJ<RXU$SSWR0DNH
'HFLVLRQV&RQGLWLRQDO%ORFNV
&RPSXWHUVHYHQWKRVHLQ\RXUSRFNHWDUHJRRGDWSHUIRUPLQJWKRXVDQGVRIRSHUDWLRQVLQMXVWD
IHZVHFRQGV(YHQPRUHLPSUHVVLYHO\WKH\FDQDOVRPDNHGHFLVLRQVEDVHGRQZKDWLVLQWKHLU
PHPRU\EDQNVDQGORJLFVSHFLILHGE\WKHSURJUDPPHU7KLVGHFLVLRQPDNLQJORJLFLVSUREDEO\
WKHNH\LQJUHGLHQWRIZKDWSHRSOHWKLQNRIDVDUWLILFLDOLQWHOOLJHQFHLW¶VGHILQLWHO\DYHU\LPSRUWDQW
SDUWRIPDNLQJVPDUWLQWHUHVWLQJDSSV,QWKLVFKDSWHUZH¶OOH[SORUHKRZWREXLOGGHFLVLRQ
PDNLQJORJLFLQWR\RXUDSSV
$VZHGLVFXVVHGLQ&KDSWHUDQDSS¶VEHKDYLRULVGHILQHGE\DVHWRIHYHQWKDQGOHUV(DFK
HYHQWKDQGOHUH[HFXWHVVRPHIXQFWLRQVLQUHVSRQVHWRWKHSDUWLFXODUHYHQW7KHUHVSRQVH
QHHGQRWEHDOLQHDUVHTXHQFHRIIXQFWLRQVKRZHYHU\RXFDQVSHFLI\WKDWVRPHIXQFWLRQVEH
SHUIRUPHGRQO\XQGHUFHUWDLQFRQGLWLRQV$JDPHDSSPLJKWFKHFNLIWKHVFRUHKDVUHDFKHG
$ORFDWLRQDZDUHDSSPLJKWDVNLIWKHSKRQHLVZLWKLQWKHERXQGDULHVRIVRPHEXLOGLQJ<RXU
DSSFDQDVNVXFKTXHVWLRQVWKHQSURFHHGGRZQDGLIIHUHQWSURJUDP³EUDQFK´GHSHQGLQJRQWKH
DQVZHU
)LJXUHGHSLFWVDIORZFKDUWRIDQHYHQWKDQGOHUZLWKDFRQGLWLRQDOFKHFN
)LJXUH$QHYHQWKDQGOHUWKDWWHVWVIRUDFRQGLWLRQDQGEUDQFKHVDFFRUGLQJO\
:KHQWKHHYHQWRFFXUVIXQFWLRQ$LVSHUIRUPHGQRPDWWHUZKDW7KHQDGHFLVLRQWHVWLV
SHUIRUPHGLIWKHWHVWLVWUXH%LVSHUIRUPHG,ILWLVIDOVH%LVSHUIRUPHG,QHLWKHUFDVHWKH
UHVWRIWKHWKHHYHQWKDQGOHU&LVFRPSOHWHG
%HFDXVHGHFLVLRQGLDJUDPVOLNHWKHRQHDERYHORRNVRPHWKLQJOLNHWUHHVLWLVFRPPRQWRVD\
WKDWWKHDSS³EUDQFKHV´RQHZD\RUWKHRWKHUGHSHQGLQJRQWKHWHVW6R\RX¶GVD\³LIWKHWHVWLV
WUXHWKHEUDQFKFRQWDLQLQJ%LVSHUIRUPHG´
7HVWLQJ&RQGLWLRQVZLWKLIDQGLIHOVH%ORFNV
$SS,QYHQWRUSURYLGHVWZRW\SHVRIFRQGLWLRQDOEORFNVILJXUHERWKIRXQGLQWKH&RQWURO
GUDZHURIWKH%XLOW,QSDOHWWH
)LJXUH7KHLIDQGLIHOVHFRQGLWLRQDOEORFNV
<RXFDQSOXJDQ\ERROHDQH[SUHVVLRQLQWRWKHµWHVW¶VORWRIWKHVHEORFNV$ERROHDQH[SUHVVLRQ
LVDPDWKHPDWLFDOHTXDWLRQWKDWUHWXUQVDUHVXOWRIHLWKHUWUXHRUIDOVH7KHH[SUHVVLRQWHVWVWKH
YDOXHRISURSHUWLHVDQGYDULDEOHVXVLQJUHODWLRQDODQGORJLFDORSHUDWRUVVXFKDVWKHRQHVVKRZQ
LQILJXUH
)LJXUH5HODWLRQDODQGORJLFDORSHUDWRUEORFNVXVHGLQFRQGLWLRQDOWHVWV
)RUHLWKHULIRULIHOVHWKHEORFNV\RXSXWZLWKLQWKHWKHQGRVORWZLOORQO\EHH[HFXWHGLIWKHWHVW
LVWUXH)RULILIWKHWHVWLVIDOVHWKHDSSMXVWPRYHVRQWRWKHEORFNVEHORZWKHLI,IWKHLIHOVH
WHVWLVIDOVHWKHEORFNVZLWKLQWKHHOVHGRDUHSHUIRUPHG
6RIRUDJDPH\RXPLJKWSOXJLQDERROHDQH[SUHVVLRQFRQFHUQLQJWKHVFRUHDVLQILJXUH
)LJXUH$ERROHDQH[SUHVVLRQLVXVHGWRWHVWWKHVFRUHYDOXH
,QWKLVH[DPSOHDVRXQGILOHLVSOD\HGLIWKHVFRUHJRHVRYHU1RWHWKDWLIWKHWHVWLVIDOVHQR
EORFNVDUHH[HFXWHG,I\RXZDQWDIDOVHWHVWWRWULJJHUDQDFWLRQ\RXFDQXVHDQLIHOVHEORFN
3URJUDPPLQJDQ(LWKHU2U
&RQVLGHUDQDSS\RXFRXOGXVHZKHQ\RXZHUHERUHG\RXSUHVVDEXWWRQDQGWKHSKRQHFDOOV
DUDQGRPIULHQG7KHVROXWLRQRI)LJXUHXVHVDUDQGRPLQWHJHUEORFNWRJHWDUDQGRP
QXPEHUDQGWKHQDQLIWKHQHOVHEORFNWRFDOODSDUWLFXODUSKRQHQXPEHUEDVHGRQWKHUDQGRP
QXPEHU
)LJXUH7KLVLIHOVHEORFNFDOOVRQHRIWZRQXPEHUVEDVHGRQWKHYDOXHUHWXUQHGE\WKHFDOO
WRUDQGRPLQWHJHU
,QWKLVVDPSOHUDQGRPLQWHJHULVFDOOHGZLWKDUJXPHQWVDQGPHDQLQJWKDWWKHUHWXUQHG
UDQGRPQXPEHUZLOOEHRUZLWKHTXDOOLNHOLKRRG7KHYDULDEOHUDQGRP1XPLVXVHGWRVWRUH
WKHUDQGRPQXPEHUUHWXUQHG
$IWHUVHWWLQJUDQGRP1XPWKHEORFNVFRPSDUHLWWRWKHQXPEHULQWKHLIHOVHWHVW,IWKHYDOXH
RIUDQGRP1XPLVWKHILUVWEUDQFKWKHQGRLVWDNHQDQGWKHSKRQHQXPEHULVVHWWR
,ILWLVQRWWKHWHVWLVIDOVHVRWKHHOVHGREUDQFKLVWDNHQDQGWKH3KRQH1XPEHULVVHW
WR7KHSKRQHFDOOLVPDGHHLWKHUZD\EHFDXVHWKHFDOOWR0DNH3KRQH&DOOLVEHORZ
WKHHQWLUHLIHOVHEORFN
3URJUDPPLQJ&RQGLWLRQVZLWKLQ&RQGLWLRQV
0DQ\GHFLVLRQVLWXDWLRQVDUHQRWELQRPLDO)RUH[DPSOH\RXPLJKWZDQWWRFKRRVHEHWZHHQ
PRUHWKDQWZRIULHQGVLQ\RXUUDQGRPFDOOSURJUDP7RGRWKLV\RXFRXOGSODFHDQLIHOVHZLWKLQ
WKHRULJLQDOHOVHGRFODXVHDVVKRZQLQILJXUH
)LJXUH$QLIHOVHFRQGLWLRQLVSODFHGZLWKLQWKHHOVHGRRIWKHRXWHULIHOVHFRQGLWLRQ
:LWKWKHVHEORFNV,IWKHILUVWWHVWLVWUXHWKHILUVWWKHQGREUDQFKLVH[HFXWHGDQGWKHQXPEHU
LVFDOOHG,IWKHILUVWWHVWLVIDOVHWKHQWKHRXWHUHOVHGREUDQFKLVH[HFXWHGZKLFK
LPPHGLDWHO\UXQVDQRWKHUWHVW6RLIWKHILUVWWHVWUDQGRP1XP LVIDOVHDQGWKHVHFRQG
UDQGRP1XP LVWUXHWKHVHFRQGWKHQGRLVH[HFXWHGDQGLVFDOOHG,IERWKWHVWV
DUHIDOVHWKHLQQHUHOVHGREUDQFKDWWKHERWWRPLVH[HFXWHGDQGWKHWKLUGQXPEHU
LVFDOOHG
1RWHWKDWWKLVPRGLILFDWLRQRQO\ZRUNVEHFDXVHWKHWRSDUDPHWHURIWKHUDQGRPLQWHJHUFDOOZDV
FKDQJHGWRVRWKDWRULVFDOOHGZLWKHTXDOOLNHOLKRRG
3ODFLQJDFRQWUROFRQVWUXFWZLWKLQDQRWKHULVFDOOHGQHVWLQJ,QWKLVFDVH\RX¶GVD\WKHEORFNV
KDGDQHVWHGLIHOVH<RXFDQXVHVXFKQHVWHGORJLFWRSURYLGHPRUHFKRLFHVLQD³FDOOUDQGRP
IULHQG´DQGLQJHQHUDODGGDUELWUDU\FRPSOH[LW\WRDQDSS
3URJUDPPLQJ&RPSOH[&RQGLWLRQV
%HVLGHVQHVWLQJTXHVWLRQV\RXFDQDOVRVSHFLI\WHVWVWKDWDUHPRUHFRPSOH[WKDQDVLPSOH
HTXDOLW\WHVW)RUH[DPSOHFRQVLGHUDQDSSWKDWYLEUDWHVZKHQ\RXDQG\RXUSKRQHOHDYHD
EXLOGLQJRUVRPHERXQGDU\6XFKDQDSSPLJKWEHXVHGE\DSHUVRQRQSUREDWLRQWRZDUQKLP
ZKHQKHVWUD\HGWRRIDUIURPKLVOHJDOERXQGDULHVRUE\SDUHQWVWRPRQLWRUWKHLUFKLOGUHQ,W
PLJKWHYHQEHXVHGE\DWHDFKHUWRDXWRPDWLFDOO\WDNHUROHFDOOLIDOOVWXGHQWVKDGDQ$QGURLG
SKRQH
)RUWKLVH[DPSOHOHW¶VDVNWKLVTXHVWLRQLVWKHSKRQHZLWKLQWKHERXQGDU\RI+DUQH\6FLHQFH
&HQWHUDW86)"6XFKDQDSSZRXOGQHHGDFRPSOH[WHVWFRQVLVWLQJRIIRXUGLIIHUHQWTXHVWLRQV
LVWKHSKRQH¶VODWLWXGHOHVVWKDQWKHPD[LPXPODWLWXGHRIWKHERXQGDU\"
LVWKHSKRQH¶VORQJLWXGHOHVVWKDQWKHPD[LPXPORQJLWXGHRIWKHERXQGDU\"
LVWKHSKRQH¶VODWLWXGHPRUHWKDQWKHPLQLPXPODWLWXGHRIWKHERXQGDU\"
LVWKHSKRQH¶VORQJLWXGHPRUHWKDQWKHPLQLPXPORQJLWXGHRIWKHERXQGDU\"
:H¶OOEHXVLQJWKH/RFDWLRQ6HQVRUIRUWKLVH[DPSOH<RXVKRXOGEHDEOHWRIROORZWKHH[DPSOH
HYHQLI\RXKDYHQ¶WEHHQH[SRVHGWRLWEXWZKHQ\RXILQLVKKHUH\RXFDQOHDUQPRUHDERXWWKH
/RFDWLRQ6HQVRULQ&KDSWHU
<RXFDQEXLOGFRPSOH[WHVWVXVLQJWKHORJLFDORSHUDWRUVDQGRUDQGQRWZKLFKDUHIRXQGLQWKH
/RJLFSDOHWWH,QWKLVFDVH\RX¶GVWDUWE\GUDJJLQJRXWDQLIEORFNDQGDQDQGEORFNDQGSODFLQJ
WKHDQGZLWKLQWKHWHVWRIWKHLIDVLOOXVWUDWHGLQILJXUH
)LJXUH$QDQGEORFNLVSODFHGZLWKLQWKHWHVWRIWKHLIEORFN
<RX¶GWKHQGUDJRXWEORFNVIRUWKHILUVWTXHVWLRQDQGSODFHWKHPLQWRWKHDQGEORFN¶VWHVWVORWDV
VKRZQLQILJXUH
)LJXUH$VWKHEORFNVIRUWKHILUVWWHVWDUHSODFHGLQWRWKHDQGEORFNDQHZWHVWVORWRSHQV
1RWHWKDWDV\RXILOODVXEWHVWRIWKHDQGEORFNDQHZWHVWVORWRSHQV,I\RXILOOWKHVHVORWV
LQZLWKWKHRWKHUWHVWVDQGSODFHWKHHQWLUHLIHOVHZLWKLQD/RFDWLRQ6HQVRU/RFDWLRQ&KDQJHG
HYHQW\RX¶OOKDYHDQHYHQWKDQGOHUWKDWFKHFNVWKHERXQGDU\DVVHHQLQILJXUH
)LJXUH7KLVHYHQWKDQGOHUFKHFNVWKHERXQGDU\HDFKWLPHWKHORFDWLRQFKDQJHV
:LWKWKHVHEORFNVHDFKWLPHWKH/RFDWLRQ6HQVRUJHWVDQHZUHDGLQJDQGWKHORFDWLRQLVZLWKLQ
WKHERXQGDU\WKHSKRQHYLEUDWHV
2.JUHDWEXWQRZOHW¶VWU\VRPHWKLQJHYHQPRUHFRPSOLFDWHGMXVWWRJLYH\RXDQLGHDRIWKH
SRZHURIWKHDSS¶VGHFLVLRQPDNLQJSRZHUV:KDWLI\RXZDQWHGWKHSKRQHWRYLEUDWHRQO\ZKHQ
WKHERXQGDU\ZDVFURVVHGIURPLQLWWRRXWVLGHLW"%HIRUHJRLQJRQWKLQNDERXWKRZ\RXPLJKW
SURJUDPVXFKDFRQGLWLRQ
7KHVROXWLRQZH¶OOXVHLVWRGHILQHDYDULDEOH³ZLWKLQ%RXQGDU\´WKDWUHPHPEHUVZKHWKHUWKH
SUHYLRXVVHQVRUUHDGLQJZDVZLWKLQWKHERXQGDU\RUQRWDQGWKHQFRPSDULQJWKDWWRHDFK
VXFFHVVLYHVHQVRUUHDGLQJ³ZLWKLQ%RXQGDU\´LVDQH[DPSOHRIDERROHDQYDULDEOHPHDQLQJ
WKDWLQVWHDGRIVWRULQJDQXPEHURUWH[WLWVWRUHVWUXHRUIDOVH)RUWKLVVDPSOH\RX¶GLQLWLDOL]HLW
RXWDVIDOVHDVVKRZQLQILJXUHPHDQLQJWKDWWKHGHYLFHLVQRWZLWKLQWKH+DUQH\6FLHQFH
FHQWHU
)LJXUH:LWKLQ%RXQGDU\LVLQLWLDOL]HGDVIDOVH
7KHEORFNVFDQQRZEHFKDQJHGVRWKDWWKHZLWKLQ%RXQGDU\YDULDEOHLVVHWRQHDFKORFDWLRQ
FKDQJHDQGVRWKDWWKHSKRQHRQO\YLEUDWHVZKHQLWPRYHVIURPLQVLGHWRRXWVLGHWKHERXQGDU\
7RSXWWKDWLQWHUPVWKDWZHFDQXVHIRUEORFNVWKHSKRQHVKRXOGYLEUDWHZKHQWKHYDULDEOH
ZLWKLQ%RXQGDU\LVWUXHPHDQLQJWKHSUHYLRXVUHDGLQJZDVLQVLGHWKHERXQGDU\DQGWKHQHZ
ORFDWLRQVHQVRUUHDGLQJLVRXWVLGHWKHERXQGDU\)LJXUHVKRZVWKHXSGDWHGEORFNV
)LJXUH7KHVHEORFNVFDXVHWKHSKRQHWRYLEUDWHRQO\ZKHQLWPRYHVIURPZLWKLQWKH
ERXQGDU\WRRXWVLGHWKHERXQGDU\
/HW¶VH[DPLQHWKHVHEORFNV:KHQWKH/RFDWLRQ6HQVRUJHWVDUHDGLQJLWILUVWFKHFNVLIWKHQHZ
UHDGLQJLVZLWKLQWKHERXQGDU\,ILWLVLWMXVWVHWVWKHZLWKLQ%RXQGDU\YDULDEOHWRWUXH$VZH
RQO\ZDQWWRYLEUDWHWKHSKRQHZKHQZHDUHRXWVLGHWKHERXQGDU\QRYLEUDWLRQWDNHVSODFHLQ
WKLVILUVWEUDQFK
,IZHJHWWRWKHHOVHGRZHNQRZWKDWWKHQHZVHQVLQJLVRXWVLGHWKHERXQGDU\,IZH¶UH
RXWVLGHWKHERXQGDU\ZHRQO\ZDQWWRYLEUDWHWKHSKRQHLIWKHSUHYLRXVUHDGLQJZDVLQVLGHWKH
ERXQGDU\$VZLWKLQ%RXQGDU\WHOOVXVWKHSUHYLRXVUHDGLQJZHFKHFNLW,ILWLVWUXHZHYLEUDWH
WKHSKRQH
:HDOVRUHVHWZLWKLQ%RXQGDU\WRIDOVHVRZHZRQ¶WFRQWLQXHWRYLEUDWHRQWKHQH[WVHQVRU
UHDGLQJ
2QHQRWHRQERROHDQYDULDEOHV&KHFNRXWWKHWZRLIWHVWVLQILJXUH$UHWKH\HTXLYDOHQW"
)LJXUH&DQ\RXWHOOLIWKHVHWZRLIWHVWVDUHHTXLYDOHQW"
7KHDQVZHULVµ\HV¶7KHWHVWRQWKHULJKWLVDFWXDOO\WKHPRUHVRSKLVWLFDWHGZD\RIDVNLQJ
WKHTXHVWLRQ7KHWHVWRQWKHOHIWFRPSDUHVWKHYDOXHRIDERROHDQYDULDEOHZLWKµWUXH¶,I
ZLWKLQ%RXQGDU\KDVµWUXH¶LQLW\RXFRPSDUHµWUXH¶YVµWUXH¶ZKLFKLVWUXH,IWKHYDULDEOH
KDVµIDOVH¶LQLW\RXFRPSDUHµIDOVH¶YVµWUXH¶ZKLFKLVIDOVH,QHLWKHUFDVHMXVWWHVWLQJWKHYDOXH
RIZLWKLQ%RXQGDU\DVLQWKHWHVWRQWKHULJKWJLYHVWKHVDPHUHVXOW
6XPPDU\
,V\RXUKHDGVSLQQLQJ"7KHODVWEHKDYLRUZDVTXLWHFRPSOH[%XWLWVWKHW\SHRIGHFLVLRQPDNLQJ
WKDWVRSKLVWLFDWHGDSSVQHHGWRPDNH,I\RXEXLOGVXFKEHKDYLRUVSDUWE\SDUWRUEUDQFKE\
EUDQFKDQGWHVWDV\RXJR\RX¶OOILQGWKDWVSHFLI\LQJFRPSOH[ORJLFHYHQGDUHZHVD\DUWLILFLDO
LQWHOOLJHQFHLVGRDEOH,WZLOOPDNH\RXUKHDGKXUWDQGH[HUFLVHWKHORJLFDOVLGHRI\RXUEUDLQWR
H[KDXVWLRQEXWLWFDQDOVREHTXLWHIXQ