swift-邏輯控制

for循環(huán)結(jié)構(gòu)


for i in -99...99{

? ? ? ?i*i

}

注:基于c的for循環(huán)結(jié)構(gòu)在swift3.0已經(jīng)取消填具。

for var a = -6.28 ; a <= 6.28 ; a += 0.1{?

? ?sin(a)

}


接下來我會通過擲骰子游戲來說明下面的循環(huán)結(jié)構(gòu)的不同以及用法

while循環(huán)結(jié)構(gòu)

在while循環(huán)條件统舀,可以直接跟一個或多個條件,當(dāng)滿足a贏得次數(shù)以及b贏得次數(shù)小于3劳景,那么就一直執(zhí)行while循環(huán)


repeat while循環(huán)結(jié)構(gòu)

至少執(zhí)行一次的循環(huán)結(jié)構(gòu)誉简,跟do while類似。

我們來優(yōu)化下這個擲骰子游戲盟广,只要a>b或b>a那么就結(jié)束游戲闷串,所以,我們可以采取repeat while來處理筋量,因為這個游戲至少得去玩一盤烹吵,只要是平局就繼續(xù)執(zhí)行循環(huán)。


break和continue

break 立即結(jié)束當(dāng)前循環(huán)

continue 結(jié)束當(dāng)前循環(huán)的內(nèi)容桨武,直接執(zhí)行下一次循環(huán)

這里利用了一個死循環(huán)肋拔,讓循環(huán)內(nèi)容無限去執(zhí)行,通過break和continue來控制循環(huán)是否終止呀酸。

假如平局凉蜂,那么就立馬跳出當(dāng)前循環(huán),不再去執(zhí)行下面的代碼了性誉;不是平局窿吩,那么就直接break結(jié)束循環(huán),輸出結(jié)果错览。


控制轉(zhuǎn)移

通過一個列子來說明

求x^4 - y^2 = 15 * x * y在300以內(nèi)的一個正整數(shù)解

思路:通過循環(huán)嵌套取x纫雁,y在300的值,如果滿足公式就打印并結(jié)束循環(huán)蝗砾。

第二種做法皱碘,在swift中可以將一個循環(huán)結(jié)構(gòu)用一個名字來代表团赏。


選擇結(jié)構(gòu)

可以利用 if .. else if ... else if .. else ..的形式來處理多個選擇

可以用switch來處理。

在swift中,用switch來進行選擇結(jié)構(gòu)誊役,每句case后不用跟break

在最后一句default:可以采用break或者()來表示什么都沒做

switch的一些用法

1.在case條件語句可以用..<或...區(qū)間形式

2.也可以采用元組的形式進行條件語句判斷

3.在采取元祖形式進行條件語句判斷的時候因块,可以利用下劃線的形式單獨判斷元組其中一個革娄,也可以利用區(qū)間來判斷元組元素是否在這個區(qū)間

4.在元組形式進行條件語句判斷捅膘,也可以通過元組解包的形式賦值一個新元組來處理

fallthrough關(guān)鍵字用于告訴case執(zhí)行完畢后跳入下一個case


guard關(guān)鍵字

舉列說明:我去買一樣?xùn)|西,如果我?guī)У腻X大于東西價格并且我能裝的容量大于了東西容量申尤,那么就可以買癌幕,反之不能買衙耕。

普通方法處理:

用普通方法處理,有2個嵌套判斷勺远,假如今后的業(yè)務(wù)邏輯更加復(fù)雜橙喘,那么代碼易讀性就大大降低。

為此胶逢,swift推出了guard關(guān)鍵字,guard else 確保一個條件為真厅瞎,這樣我們就不用去把跟業(yè)務(wù)邏輯不相干的還要寫在一起,顯得混亂初坠。

很清晰看的出和簸,采取guard else后,代碼條理非常清晰碟刺,更加易讀锁保。


where用法和模式匹配

通過where關(guān)鍵字來附加限制條件

列1:給出一個點,這個點可能x半沽,y相等爽柒,可能x等于-y

列2:給出一個年齡,10到19為青少年

普通做法:

這樣做發(fā)現(xiàn)代碼冗長者填,不夠簡練霉赡。

簡練做法:

通過if case方法就能直接判斷一個區(qū)間形式了

列3:根據(jù)列3附加一個條件限制,大于18的才是青年

同理幔托,采取where來附加限制條件

元組也可以這樣操作。

列4:取出1到100之間能被3整除的數(shù)

利用let case 蜂挪,where的形式重挑,我們可以寫出非常漂亮的代碼


總結(jié):合理通過利用swift各個關(guān)鍵字以及寫法,可以實現(xiàn)代碼簡潔化棠涮,易讀化谬哀,提升了代碼質(zhì)量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末严肪,一起剝皮案震驚了整個濱河市史煎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驳糯,老刑警劉巖篇梭,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酝枢,居然都是意外死亡恬偷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門帘睦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袍患,“玉大人坦康,你說我怎么就攤上這事」钛樱” “怎么了滞欠?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肆良。 經(jīng)常有香客問我筛璧,道長,這世上最難降的妖魔是什么妖滔? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任隧哮,我火速辦了婚禮,結(jié)果婚禮上座舍,老公的妹妹穿的比我還像新娘沮翔。我一直安慰自己,他們只是感情好曲秉,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布采蚀。 她就那樣靜靜地躺著,像睡著了一般承二。 火紅的嫁衣襯著肌膚如雪榆鼠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天亥鸠,我揣著相機與錄音妆够,去河邊找鬼。 笑死负蚊,一個胖子當(dāng)著我的面吹牛神妹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播家妆,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鸵荠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伤极?” 一聲冷哼從身側(cè)響起蛹找,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哨坪,沒想到半個月后庸疾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡齿税,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年彼硫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡拧篮,死狀恐怖词渤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情串绩,我是刑警寧澤缺虐,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站礁凡,受9級特大地震影響高氮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顷牌,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一剪芍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窟蓝,春花似錦罪裹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谁帕,卻和暖如春峡继,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匈挖。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工碾牌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人儡循。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓小染,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贮折。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容