2016-07-12(Swift-條件分支、循環(huán)、集合類型)

關(guān)系運(yùn)算符:

Swift 的關(guān)系運(yùn)算符種類這幾種:>,<,>=,<=,==,!=,===,!==

其中:===判斷的是兩個值及數(shù)據(jù)類型都一樣
!==判斷的是兩個值及數(shù)據(jù)類型不一樣

使用其他關(guān)系運(yùn)算符時,若是變量比較,關(guān)系運(yùn)算符左右兩側(cè)的數(shù)據(jù)類型要一致

在swift中關(guān)系運(yùn)算符構(gòu)成的關(guān)系表達(dá)式結(jié)果類型為 true(真),false (假)


條件分支:

Swift繼承了C的條件分支,但是語法稍微不同,在swift里面,if后面的條件不需要括號括起來。

var  num:Int = 1

if num > 0

{

print("num是正數(shù)!")

}

var price:Float = 3.5

switch price

{

case 3.5: print("1.0”)

case 2.0:print("2.0")

default :print("其他")

}

區(qū)間運(yùn)算符:

閉區(qū)間運(yùn)算符:閉區(qū)間運(yùn)算符(a...b)定義一個包含從a到b(包括a和b)的所有值的區(qū)間。



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

Swift中循環(huán)有四種:

while ,for ,repeat…while ,for…in

這四種與之前學(xué)的功能一致,只是語法稍有不同。
前兩種循環(huán)在swift里面循環(huán)條件的括號無需添加。

如下:

var price:Float = 3.5
while price < 5
{
print("漲價了")
price++
}

for var count = 0 ; count < 5 ; count++
{
print("循環(huán)計(jì)數(shù)")
}


repeat
{
print("又漲價了")
price++
}while price < 10


//閉區(qū)間

for index in  1...3
{
print(index)
}

集合-數(shù)組:

數(shù)組類型安全:數(shù)組在聲明之后總是知道自己能存放什么類型的數(shù)據(jù),所以在給數(shù)組元素賦值的時候要注意類型匹配

語法:

變量修飾符(var/let) 數(shù)組名:[數(shù)據(jù)類型]

數(shù)組可以在聲明時初始化,也可以之后初始化

//聲明時初始化
var age:[Int] = [10,30,4,2]
//聲明
var name:[String]
//聲明之后初始化
name = ["張三","李思","王武"]

數(shù)組元素的訪問:

for var i = 0 ; i < name.count  ; i++
{
print(name[i])//下標(biāo)法
}


for index in name  
{//不需要定義,直接寫參數(shù)名即可
print(index)
}



for (index,value) in name.enumerate()
{//使用枚舉器,獲取下標(biāo)和值
print(index,value)
}

數(shù)組有下標(biāo)越界檢查,注意下標(biāo)越界引起崩潰
同樣(var)修飾的數(shù)組可進(jìn)行添加,修改,刪除,(let)則是只讀

數(shù)組值的修改:

name[0] = “雷神” //修改元素值
name[1...2] = [“張笑笑”,“林巖巖”]//指定區(qū)間修改
//指定范圍修改(0~1下標(biāo)替換)
name.replaceRange(0...1, with: ["呀呀","jaja"])
name[0..<2] = ["問問","QQ"] //指定區(qū)間修改
print(name[0...1]) //指定區(qū)間打印元素(0,1下標(biāo))

數(shù)組的添加:

//聲明時初始化

var age:[Int] = [10,30,4,2]
age.appendContentsOf(1...10) //追加一個序列
print(age)

數(shù)組元素的刪除:

name .removeFirst() //刪除第一個元素

name.removeLast()  //刪除最后一個元素

name .removeAtIndex(2) //刪除下標(biāo)是2的元素

name.removeFirst(2) //從第一個開始刪除兩個元素

name.removeAll()//刪除所有

name.removeAll(keepCapacity: false)//刪除所有元素且不保留原來空間

name.removeRange(1...2) //刪除1~2下標(biāo)的元素,baokuo 1,2

數(shù)組內(nèi)容的相關(guān)判斷:

print(name.isEmpty) //判斷數(shù)組是否為空

print(name.contains("QQ"))//數(shù)組包含QQ這個元素

var ssq = "aaa"

let rst =  name.contains { (s:String) -> Bool in

return ssq == s //判斷name是否包含ssq這個變量的內(nèi)容 rst的結(jié)果是ture(包含)    flase(不包含)

}

集合-字典:

Swift的字典類型是Dictionary<KeyType, ValueType>,其中KeyType是字典中鍵的類型,ValueType是字典中值的類型。
對鍵類型KeyType的唯一限制是,它必須能夠提供一個方式讓自己被唯一表示出來。
Swift的所有基礎(chǔ)類型(例如String、Int、Double和Bool)這些類型都能夠用作字典中的鍵。枚舉成員中沒有綁定值的值默認(rèn)也是可以作為鍵值。

字典的聲明語法:

Var 字典變量名: Dictionary<鍵的數(shù)據(jù)類型, 值的數(shù)據(jù)類型>

字典的聲明及初始化示例 :

//聲明空字典
var dict = Dictionary<Int,String>()
//賦值
dict[1] = "qq" //鍵是整型
print(dict[1]!)
//空字典
var dict1:Dictionary<Int,String> = [:]
//聲明
var  dic:Dictionary<String,String>
//賦值
dic  = ["name":"張三","address":"廈門市","age":"20"]

//上面的可以簡化如下代碼:(在初始化的時候,字典的鍵值和值的數(shù)據(jù)類型就可以確定為:String,String),所以可以忽略

var dic1:Dictionary = ["name":"張三","address":"廈門市","age":"20"]

字典數(shù)據(jù)訪問:

//聲明,dic  可以賦值為空
var  dic:Dictionary<String,String>?
//若聲明的時候沒加?,下面這條語句不合法
dic=nil
//遍歷數(shù)組,但在使用dic變量取值時要保證不是空的,所以要加!
for (key,value) in dic!
{
print(key,value)
}

字典數(shù)據(jù)添加、修改、刪除:

//添加
dic1["score"] = "100 ?

//根據(jù)鍵值修改
dic1["name"] = "求求”

//根據(jù)鍵值修改
dic1.updateValue("99", forKey: "score")

//根據(jù)鍵刪除
dic1.removeValueForKey("name")

//全部刪除
dic1.removeAll()

//true:保留內(nèi)存,默認(rèn)為false
dic1.removeAll(keepCapacity: true)

容器 - 元組:

元組(tuples)把多個值組合成一個復(fù)合值。元組內(nèi)的值可以使任意類型,并不要求是相 同類型。
//聲明(:加類型可以省略)

var stu:(stuId:Int,stuName:String) = (stuId:200,stuName:"張三")

print(stu.stuId)//key取值

print(stu.1)//下標(biāo)取值

//內(nèi)容分解

var (sId,sName) = stu

print(sId,sName)

常見錯誤:

關(guān)系運(yùn)算符的使用(注意===,及操作數(shù)的類型匹配)
條件分支的語法
Switch…case的條件可以是浮點(diǎn),沒有break貫穿
循環(huán)的語法注意,swift沒有do…while,用repeat…while表示
集合的值在做增刪改的時候注意是var,可變的。
注意變量是!號描述還是?描述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一直沒有時間好好看一下swift,最近復(fù)習(xí)了一遍語法,這里記錄swift學(xué)習(xí)過程中遇到的一些問題和要點(diǎn),和Obje...
    bomo閱讀 2,544評論 0 25
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,194評論 1 10
  • Swift 語言提供Arrays、Sets和Dictionaries三種基本的集合類型用來存儲集合數(shù)據(jù)。數(shù)組(Ar...
    窮人家的孩紙閱讀 649評論 3 2
  • 文/李云揚(yáng) 1 笑笑和大同剛結(jié)完婚不多久,笑笑便辭去了在老家農(nóng)村小超市服務(wù)員的活兒,跟著老公來到了城里。 最初的幾...
    李云揚(yáng)閱讀 457評論 2 8
  • 一山一色一酒家, 老農(nóng)閑坐話新茶。 游人應(yīng)憐東風(fēng)好, 聽完暮雨聽夜蛙。
    貓苦艾閱讀 180評論 0 0

友情鏈接更多精彩內(nèi)容