亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Swift的基本運算符

2019-11-14 18:52:21
字體:
來源:轉載
供稿:網友

  今天學習了Swift語言的最基本的知識,以下是本人的一些認識與小結,希望能幫助更多人的區理解,如有不妥的地方望大家指出,以便及時更正。

  

  基本運算符

  運算符是一種特殊的符號或短語,你可以用它來檢查,改變,或組合值。

  運算符都是一元,二元或者三元:

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

  賦值運算符

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

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

 

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

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

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

if x = y {// 錯誤, 因為x = y并不會返回一個值}

 數學運算符

  Swift支持所有數字類型的四個標注運算符:

  例如:

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

 

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

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

 

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

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

  取余運算符

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

let a = 5let b = 3let c = a%b//這時c的值是2

  同一個方法中如果a的值是-5那么取余運算后c的值就是-2,如果b的值是-3則c的值會是2,也就是說取余運算的符號不受被除數b的影響,只受除數a的影響

  浮點余數計算

  不同于C與OC的是Swift的取余運算同樣可以運用于浮點數:

let a = 8let b = 2.5let c = a%b//那么現在的c的值是0.5

  自增自減運算符

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

var a = 0++a    //這時a的值是1--a      //這時a的值是0

  這里需要注意的是當運算需要返回值的時候,自增自減運算符所放的位置的不同對運算的結果也是不一樣的:

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

 

  復合賦值操作符

  Swift提供了和C語言一樣的復合復制操作符,就是說把賦值和另外一種運算符結合起來。如(+=),(-=):

var a = 1a += 2     //這時a的值為3 a -= 3      //這時a的值為0

 

  加法賦值操作符的原型是  a = a + 2,之所以寫成(+=)是因為這樣寫能夠有效地把加法和賦值組合到一個運算,同時執行這兩個任務。

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

  

  比較運算符

  Swift支持所有C的比較運算符。

  • 大于(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

    這種比較運算符通常都用在條件語句中,比如if語句 

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

     

    關于if語句我們以后再詳細研究

     

  范圍運算符

  Swift提供了兩種形式的范圍運算符

  1、封閉范圍運算符

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

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

 

 

 

   關于for -in語句我們以后再深入研究?! ?/span>

  2、半封閉的區域運算符

          半封閉的區域運算符(a..b)定義了從a到b的范圍,但不包括b。它被認為是半封閉的,因為它包含第一個值,而不包含最終值。

    半封閉的范圍使用明確,當你使用從零開始的列表,如數組,它是有用的數到(但不包括)列表的長度:

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

  請注意,該數組包含四個項目,但0 . .數只數到3(數組中的最后一個項目的索引),因為它是一個半封閉的范圍。有關數組的信息,我們以后深入研究。

  三元運算符

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

let a = truelet b = a?2:3//這時b的值是2

 

  上邊的表達式也可以這樣寫

let a = trueif a {    reture 2}else{    reture 3}//結果是2

  很明顯使用三元運算符更簡潔,更方便。不過需要注意的是為了保證代碼的可讀性,最好不要使用多個實例的三元條件運算符組合成一個復合語句。

 

  邏輯與運算符

  Swift支持這三個標準邏輯運算符基于C語言,通常用在條件語句中:

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

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

let a = trueif !a {    println("條件成立")}else{    println("條件不成立")}//輸出結果是  條件不成立//因為a本身是正確地,而邏輯非運算符說a不是正確地,所以不成立返回false

 

 

 

 

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

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

 

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

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

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

  復合邏輯表達式

  符合邏輯表達式是將多個邏輯運算符復合后創建更長的復合表達式:

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

 

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

 

  明確地括號

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

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

 

  在符合邏輯表達式中我們可以把幾個值放在一個單獨的邏輯運算中去判斷出結果,然后根據()內判斷的結果再與前面或后面的值進行判斷,最后得出最終結果

 

  

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久在精品线影院精品国产| 国产精品一区二区三区毛片淫片| 久久人91精品久久久久久不卡| 国产精品成人aaaaa网站| 国产欧美一区二区三区在线看| 俺也去精品视频在线观看| 久久91精品国产91久久跳| 亚洲精品电影在线| 亚洲国产精品一区二区久| 日本高清不卡在线| 亚洲国产精久久久久久| 欧美性xxxx极品高清hd直播| 91av视频导航| 国产一区二区三区视频免费| 97精品视频在线观看| 黑人狂躁日本妞一区二区三区| 午夜精品一区二区三区av| 欧美人与性动交a欧美精品| 伊人久久大香线蕉av一区二区| 亚洲欧美日韩网| 91国内免费在线视频| 亚洲第一免费播放区| 精品国产区一区二区三区在线观看| 国内精品久久久久影院 日本资源| 超碰精品一区二区三区乱码| 欧美性极品xxxx做受| 国产成人精品日本亚洲| 欧美激情2020午夜免费观看| 91色在线观看| 亚洲国产美女久久久久| 日韩一区二区三区国产| 欧美成人午夜激情视频| 国产精品久久99久久| 国产精品久在线观看| 国产91精品黑色丝袜高跟鞋| 福利微拍一区二区| 欧美日韩中文字幕综合视频| 精品久久久久久亚洲国产300| 日韩精品免费在线视频观看| 久久韩剧网电视剧| 国产精品99久久久久久久久| 日韩精品在线观看视频| 国产在线拍偷自揄拍精品| 欧美成人合集magnet| 深夜福利亚洲导航| 欧美老女人性视频| 欧美午夜影院在线视频| 久久久精品一区二区三区| 欧美视频不卡中文| 欧美最猛性xxxxx(亚洲精品)| 欧美制服第一页| 国产婷婷色综合av蜜臀av| 国产成人综合av| yw.139尤物在线精品视频| 欧美黄色成人网| 国产午夜精品免费一区二区三区| 成人精品一区二区三区电影免费| 国产欧美精品日韩精品| 亚洲美女在线看| 美女扒开尿口让男人操亚洲视频网站| 亚洲一区二区久久久久久久| 91亚洲国产成人久久精品网站| 久久久免费在线观看| 亚洲视频在线播放| 久久国产一区二区三区| 68精品久久久久久欧美| 日韩中文字幕精品视频| 亚洲高清福利视频| 久久久亚洲福利精品午夜| 亚洲综合中文字幕68页| 久久综合久中文字幕青草| 国产精品一区二区电影| 国产69精品久久久久99| 色爱精品视频一区| 亚洲级视频在线观看免费1级| 国产婷婷97碰碰久久人人蜜臀| 久久视频在线免费观看| 国产精品激情自拍| 国产成人精品日本亚洲| 亚洲精品国产品国语在线| 国产精品久久久久久久久久久不卡| 欧美另类老女人| 91国语精品自产拍在线观看性色| 最近中文字幕mv在线一区二区三区四区| 日韩av综合网| 7777精品久久久久久| 国产精品九九久久久久久久| 国产成人精品在线播放| 亚洲精品国精品久久99热一| 日本一区二区在线免费播放| 日韩美女av在线| 欧美国产日韩xxxxx| 日韩美女免费观看| 亚洲电影免费观看高清完整版在线| 欧美性猛交xxxx乱大交蜜桃| 国产午夜精品美女视频明星a级| 久热精品在线视频| 亚洲精品99久久久久中文字幕| 国产日韩欧美中文在线播放| 欧美日本中文字幕| 亚洲xxxx做受欧美| 亚洲欧美综合区自拍另类| 日韩免费看的电影电视剧大全| 成人免费网站在线看| 久久综合久久美利坚合众国| 国产丝袜一区视频在线观看| 国产综合香蕉五月婷在线| 午夜精品久久久99热福利| 欧美激情精品久久久久| 久久国产精品首页| 另类专区欧美制服同性| 国产日韩欧美夫妻视频在线观看| 中文字幕日韩精品在线观看| 久久免费国产精品1| 国产亚洲欧美一区| 欧美激情视频在线免费观看 欧美视频免费一| 国产日韩欧美在线视频观看| 久久精品青青大伊人av| www欧美日韩| 欧美激情视频三区| 成人a在线观看| 亚洲国产欧美一区二区丝袜黑人| 国产自产女人91一区在线观看| 国产精品视频自拍| 91国内产香蕉| 欧美老少配视频| 国产成人在线一区| 午夜免费久久久久| 欧美成人激情图片网| 精品视频—区二区三区免费| 性欧美在线看片a免费观看| 97在线观看视频| 精品国产视频在线| 精品国产一区二区三区久久狼5月| 日本国产高清不卡| 亚洲人成网站777色婷婷| 成人久久18免费网站图片| 伊人久久五月天| 国产性猛交xxxx免费看久久| 精品国产91久久久| 亚洲伊人第一页| 国产一区二区三区在线观看视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲精品第一国产综合精品| 国产自产女人91一区在线观看| 亚洲第一精品夜夜躁人人躁| 久久天天躁狠狠躁夜夜av| 欧美在线一级va免费观看| 欧美激情视频网址| 精品国模在线视频| 亚洲japanese制服美女| 日本精品在线视频| 亚洲精品视频免费在线观看| 91精品国产综合久久男男| 久久久久久18| 成人精品久久av网站| 伦理中文字幕亚洲| y97精品国产97久久久久久| 欧美伦理91i| 成人a在线观看| 日韩中文娱乐网| 久久婷婷国产麻豆91天堂| 91日韩在线视频| 亚洲精品福利在线观看|