麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Swift的基本運(yùn)算符

2019-11-14 18:52:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  今天學(xué)習(xí)了Swift語(yǔ)言的最基本的知識(shí),以下是本人的一些認(rèn)識(shí)與小結(jié),希望能幫助更多人的區(qū)理解,如有不妥的地方望大家指出,以便及時(shí)更正。

  

  基本運(yùn)算符

  運(yùn)算符是一種特殊的符號(hào)或短語(yǔ),你可以用它來(lái)檢查,改變,或組合值。

  運(yùn)算符都是一元,二元或者三元:

  • 一元運(yùn)算符操作單個(gè)對(duì)象主要有:前綴操作符 (如 -a,!a)和后綴操作符在對(duì)象后出現(xiàn) (如 i++,i--)。
  • 二元運(yùn)算符操作兩個(gè)對(duì)象且在兩對(duì)象之間,主要有:-,+,*,/,%,<,>,=。(如 a-b, a+b, a*b, a/b, a%b, a<b, a>b, a=b)
  • 三元運(yùn)算符對(duì)兩個(gè)對(duì)象進(jìn)行操作,與C語(yǔ)言一樣,Swift也只支持一個(gè)三元運(yùn)算符:三元條件操作符 (a ? b : c).

  賦值運(yùn)算符

  賦值運(yùn)算符 (a=b) 用 b 的值去初始化或更新a的值

 let b =2 var a = 3 a= b //此時(shí)a的值等于b的值都是2

 

  假如右邊賦值的數(shù)據(jù)為多個(gè)數(shù)據(jù)的元組,它的元素可以是一次性賦給的多個(gè)常量或變量 

let (a, b) = (1, 2)// a等于1, b等于2

  與C及Objective-C不同,Swift中賦值運(yùn)算符并不將自身作為一個(gè)值進(jìn)行返回。所以以下的代碼是不合法的:

if x = y {// 錯(cuò)誤, 因?yàn)閤 = y并不會(huì)返回一個(gè)值}

 數(shù)學(xué)運(yùn)算符

  Swift支持所有數(shù)字類型的四個(gè)標(biāo)注運(yùn)算符:

  例如:

1 + 2 // equals 35 - 3 // equals 22 * 3 // equals 610.0 / 2.5 // equals 4.0

 

  不同于C和Objective-C,默認(rèn)情況下Swift的算術(shù)運(yùn)算符不允許值溢出。加法運(yùn)算符對(duì)字符串連接也一樣適用,例如:

"hello, " + "world" // equals "hello, world"

 

  兩個(gè)字符,或者一個(gè)字符一個(gè)字符串,能組合成一個(gè)新的字符串:

let dog: Character = "dog"let cow: Character = "cow"let dogCow = dog + cow// dogCow is equal to "dogcow"

  取余運(yùn)算符

  取余運(yùn)算符%是指在除數(shù)除以被除數(shù)時(shí)余下的數(shù),如(3%2的余數(shù)就是1)

let a = 5let b = 3let c = a%b//這時(shí)c的值是2

  同一個(gè)方法中如果a的值是-5那么取余運(yùn)算后c的值就是-2,如果b的值是-3則c的值會(huì)是2,也就是說(shuō)取余運(yùn)算的符號(hào)不受被除數(shù)b的影響,只受除數(shù)a的影響

  浮點(diǎn)余數(shù)計(jì)算

  不同于C與OC的是Swift的取余運(yùn)算同樣可以運(yùn)用于浮點(diǎn)數(shù):

let a = 8let b = 2.5let c = a%b//那么現(xiàn)在的c的值是0.5

  自增自減運(yùn)算符

  和C一樣Swift提供了自增(++),自減(--)兩個(gè)運(yùn)算符,其增減量為1,可以對(duì)任何的整點(diǎn)或浮點(diǎn)類型的變量使用。如

var a = 0++a    //這時(shí)a的值是1--a      //這時(shí)a的值是0

  這里需要注意的是當(dāng)運(yùn)算需要返回值的時(shí)候,自增自減運(yùn)算符所放的位置的不同對(duì)運(yùn)算的結(jié)果也是不一樣的:

var a = 0let b = ++a      //a和b的值都為1let c = a++     //這時(shí)a的值是2  c的值是1let d = --a       //這時(shí)d的值是1  a的值也是1let e = a--       //這時(shí)e的值是1  a的值是0

 

  復(fù)合賦值操作符

  Swift提供了和C語(yǔ)言一樣的復(fù)合復(fù)制操作符,就是說(shuō)把賦值和另外一種運(yùn)算符結(jié)合起來(lái)。如(+=),(-=):

var a = 1a += 2     //這時(shí)a的值為3 a -= 3      //這時(shí)a的值為0

 

  加法賦值操作符的原型是  a = a + 2,之所以寫成(+=)是因?yàn)檫@樣寫能夠有效地把加法和賦值組合到一個(gè)運(yùn)算,同時(shí)執(zhí)行這兩個(gè)任務(wù)。

  需要注意的是:復(fù)合復(fù)制操作符不返回值。例如這樣寫就是不對(duì)的    let a = +=1。

  

  比較運(yùn)算符

  Swift支持所有C的比較運(yùn)算符。

  • 大于(a>b)
  • 小于 (a<b)
  • 大于等于 (a >= b)
  • 小于等于 (a <= b)
  • 等于  (a = b)
  • 不等于 (a != b)
    let a = 5let b = 6let c = 5a>b        //返回false    c<b        //返回truea>=c     //返回true   a<=c     //返回truea == c   //返回truea != b    //返回true

    這種比較運(yùn)算符通常都用在條件語(yǔ)句中,比如if語(yǔ)句 

    let a = "chk"if a == "chk"{    PRintln("hello, chk")    } else{    println("not chk") }//輸出的結(jié)果是 hello, chk

     

    關(guān)于if語(yǔ)句我們以后再詳細(xì)研究

     

  范圍運(yùn)算符

  Swift提供了兩種形式的范圍運(yùn)算符

  1、封閉范圍運(yùn)算符

    封閉范圍運(yùn)算符(a...b)定義了一個(gè)范圍,從a到b,并包括了a和b的值。一般用于for -in 循環(huán)語(yǔ)句中

for i in 0...5{    println("第 /(i) 次")}//第 0 次//第 1 次//第 2 次//第 3 次//第 4 次

 

 

 

   關(guān)于for -in語(yǔ)句我們以后再深入研究?! ?/span>

  2、半封閉的區(qū)域運(yùn)算符

          半封閉的區(qū)域運(yùn)算符(a..b)定義了從a到b的范圍,但不包括b。它被認(rèn)為是半封閉的,因?yàn)樗谝粋€(gè)值,而不包含最終值。

    半封閉的范圍使用明確,當(dāng)你使用從零開(kāi)始的列表,如數(shù)組,它是有用的數(shù)到(但不包括)列表的長(zhǎng)度:

let names = ["Anna", "Alex", "Brian", "Jack"]let count = names.countfor i in 0..count {println("Person /(i + 1) is called /(names[i])")}// Person 1 is called Anna// Person 2 is called Alex// Person 3 is called Brian// Person 4 is called Jack

  請(qǐng)注意,該數(shù)組包含四個(gè)項(xiàng)目,但0 . .數(shù)只數(shù)到3(數(shù)組中的最后一個(gè)項(xiàng)目的索引),因?yàn)樗且粋€(gè)半封閉的范圍。有關(guān)數(shù)組的信息,我們以后深入研究。

  三元運(yùn)算符

  Swift跟C語(yǔ)言一樣也支持三元運(yùn)算,三元運(yùn)算也屬于條運(yùn)算,主要形式是 a?b:c 其表達(dá)的意思是判斷a的值,若a的值返回true則表達(dá)式返回b的值,若a的值返回false則返回c的值。下面我們用代碼比較下三元運(yùn)算符的優(yōu)勢(shì):

let a = truelet b = a?2:3//這時(shí)b的值是2

 

  上邊的表達(dá)式也可以這樣寫

let a = trueif a {    reture 2}else{    reture 3}//結(jié)果是2

  很明顯使用三元運(yùn)算符更簡(jiǎn)潔,更方便。不過(guò)需要注意的是為了保證代碼的可讀性,最好不要使用多個(gè)實(shí)例的三元條件運(yùn)算符組合成一個(gè)復(fù)合語(yǔ)句。

 

  邏輯與運(yùn)算符

  Swift支持這三個(gè)標(biāo)準(zhǔn)邏輯運(yùn)算符基于C語(yǔ)言,通常用在條件語(yǔ)句中:

  • not (!a)
  • and (a&&b)
  • or  (a || b)

  邏輯非運(yùn)算符(!a)表達(dá)的意思為不是什么成立則返回true,不成立則返回false

let a = trueif !a {    println("條件成立")}else{    println("條件不成立")}//輸出結(jié)果是  條件不成立//因?yàn)閍本身是正確地,而邏輯非運(yùn)算符說(shuō)a不是正確地,所以不成立返回false

 

 

 

 

  邏輯與運(yùn)算符(A&&B)表達(dá)的意思為A,B兩個(gè)值都必須是true才返回true,否則A,B中有一個(gè)是false就返回false

let A = truelet B = falseif A && B {    println("條件成立返回true")}else{    println("條件不成立返回false")}//輸出結(jié)果是  條件不成立返回false

 

  邏輯或運(yùn)算符(A || B)表示A和B其中有一個(gè)是true則返回true,如果A,B都是false則結(jié)果返回false

let A = truelet B = falseif A || B {    println("條件成立返回true")}else{    println("條件不成立返回false")}//打印結(jié)果是    條件成立返回true

  在這里值得一提的是不管是邏輯與運(yùn)算符還是邏輯或運(yùn)算符都用到了短路條件判斷法,比如說(shuō)邏輯與運(yùn)算符(&&)必需是兩個(gè)值都為true時(shí)才成立,那么當(dāng)左邊的值是false的時(shí)候,條件不成立,就不需要再判斷運(yùn)算符右邊的值了。邏輯或運(yùn)算符(||)也是同樣的道理,邏輯或運(yùn)算符(||)是只要有一個(gè)值是true就成立,那么當(dāng)判斷左邊的值是true時(shí),則條件是成立的,就不用再判斷運(yùn)算符右邊的值了。

  復(fù)合邏輯表達(dá)式

  符合邏輯表達(dá)式是將多個(gè)邏輯運(yùn)算符復(fù)合后創(chuàng)建更長(zhǎng)的復(fù)合表達(dá)式:

let a = truelet b = falselet c = trueif !a || c && b {    println("條件成立")}else {    println("條件不成立")}//輸出結(jié)果是條件不成立

 

  像這種復(fù)合邏輯表達(dá)式的判讀一般都是從左到右根據(jù)邏輯運(yùn)算符的優(yōu)先級(jí)依次進(jìn)行判斷,(!,&&,||)這三個(gè)運(yùn)算符的優(yōu)先級(jí)是一樣的,只需要牢記邏輯與運(yùn)算符(&&)兩者都必須是true才成立,邏輯或運(yùn)算符(||)兩者有一個(gè)是true則成立,如此即可正確解析整個(gè)復(fù)合表達(dá)式,一定要透過(guò)現(xiàn)象看本質(zhì)。

 

  明確地括號(hào)

  這個(gè)就比較好理解了,在復(fù)合邏輯表達(dá)式中我們可以添加()使邏輯意圖更加明確,比如在上段代碼中我們加入()

let a = truelet b = falselet c = trueif !a || ( c && b ) {    println("條件成立")}else {    println("條件不成立")}//輸出結(jié)果是條件不成立

 

  在符合邏輯表達(dá)式中我們可以把幾個(gè)值放在一個(gè)單獨(dú)的邏輯運(yùn)算中去判斷出結(jié)果,然后根據(jù)()內(nèi)判斷的結(jié)果再與前面或后面的值進(jìn)行判斷,最后得出最終結(jié)果

 

  

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人黄色小视频在线观看 | 91九色视频在线播放 | av中文字幕免费在线观看 | 一区在线看| 久久影库| 国产成人在线免费观看视频 | 精品视频 久久久 | 欧美精品亚洲人成在线观看 | 毛片网站视频 | 午夜爽爽爽男女免费观看hd | 2019亚洲日韩新视频 | 黄色一级片免费在线观看 | 日本欧美一区二区三区在线观看 | av电影手机在线看 | 国产精品免费一区二区 | 依人在线视频 | 午夜国内精品a一区二区桃色 | av电影网站在线观看 | 日本高清在线免费 | 特黄一级小说 | 免费国产精品视频 | 一区二区三区日韩 | 精品久久久久久久久久中出 | 性生活视频一级 | 亚洲少妇诱惑 | 性爱视频免费 | 成人福利免费在线观看 | 欧美一级小视频 | 精品国产91一区二区三区 | 曰韩毛片| 欧美精品久久久久久久多人混战 | 毛片免费视频网站 | hd欧美free性xxxx护土 | 国产精品免费成人 | 国产一级桃视频播放 | 亚洲成人在线视频网站 | 爱唯侦察 国产合集 亚洲 | 国产91一区二区三区 | 久国久产久精永久网页 | 亚洲第五色综合网 | 99国产精品白浆在线观看免费 |