99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋(píng)果6袋
6
麥子學(xué)院

  Swift中的條件操作和循環(huán)

發(fā)布時(shí)間:2016-11-04 16:48  回復(fù):0  查看:2059   最后回復(fù):2016-11-04 16:48  

Swift開(kāi)發(fā)中,使用ifswitch語(yǔ)句來(lái)進(jìn)行條件操作,使用for-infor、whilerepeat-while語(yǔ)句來(lái)進(jìn)行循環(huán)。在if語(yǔ)句中,條件必須是一個(gè)布爾表達(dá)式。例如,我們可以編寫(xiě)如下的iffor語(yǔ)句:

  let height = [155, 180, 160, 170, 163, 178]var heightflag = 0for (oneheight) in (height) {

  if (oneheight > 170) {

  heightflag = heightflag + 2

  } else {

  heightflag = heightflag + 1

  }

  }print(heightflag)

  上面的代碼定義了一個(gè)由6個(gè)元素組成的數(shù)組height,通過(guò)一個(gè)for循環(huán)來(lái)遍歷這個(gè)數(shù)組,并用if語(yǔ)句來(lái)判斷數(shù)組中的各個(gè)元素值是否大于170,如果是,則將heightflag變量的值加上2,否則,將heightflag變量的值加上1。

  條件操作語(yǔ)句中的包裹條件和循環(huán)語(yǔ)句中的循環(huán)變量括號(hào)可以省略,但是語(yǔ)句體的大括號(hào)是不能省略的。也就是說(shuō),上面的代碼可以改寫(xiě)為:

  let height = [155, 180, 160, 170, 163, 178]var heightflag = 0for oneheight in height {

  if oneheight > 170 {

  heightflag = heightflag + 2

  } else {

  heightflag = heightflag + 1

  }

  }print(heightflag)

  在for循環(huán)中,使用..<創(chuàng)建的范圍不包含上界,如果想包含上界的話需要使用。如下代碼所示:

  var sum = 0for i in 1..<5 {

  sum = sum + i

  }print(sum)

  var count = 1for j in 1...5 {

  count = count * j

  }print(count)

  在Swift中,一個(gè)變量可能有一個(gè)具體的值,或者是nil??梢詫?/span>iflet結(jié)合起來(lái)處理值缺失的情況,這些值可由可選值來(lái)代表。在類(lèi)型的后面加一個(gè)問(wèn)號(hào)來(lái)標(biāo)記這個(gè)變量的值是可選的。如下代碼所示:

  var optionalString: String? = "Hello"print(optionalString == nil)

  var optionalName: String? = "zzx"var greeting = "Good morning, "if let name = optionalName {

  greeting = "Hi, \\(name)"

  } else {

  greeting = "Nice tomeet you!"

  }print(greeting)

  在上面的代碼中,我們首先定義了一個(gè)可選的變量optionalString,并通過(guò)print來(lái)判斷這個(gè)可選的變量的值是否為nil;接著,我們定義了一個(gè)可選的變量optionalName及變量greeting,如果optionalName的值不為nil,那么這個(gè)值會(huì)被賦給常量name,在大括號(hào)中的代碼就可以使用這個(gè)值,如果optionalName的值為nil,那么變量greeting的值就為“Nice to meetyou!”

  另一種處理可選值的方法是通過(guò)使用??(兩個(gè)問(wèn)號(hào))操作符來(lái)提供一個(gè)默認(rèn)值;如果可選值缺失的話,可以使用默認(rèn)值來(lái)代替。

  作為一類(lèi)非常靈活的條件操作語(yǔ)句,switch支持任意類(lèi)型的數(shù)據(jù)以及各種比較操作。此外,在switch中匹配到子句之后,程序會(huì)退出switch語(yǔ)句的執(zhí)行,并不會(huì)繼續(xù)向下運(yùn)行,所以不需要在每個(gè)子句結(jié)尾處添加break語(yǔ)句。如下代碼所示:

  let phone = "iPhone 7"switch phone {case "xiaomi":

  print("Do well in marketing.")

  case "vivo","oppo":

  print("Loved by youngsters.")

  case let x where x.hasPrefix("iPhone"):

  print("Do you need to buy \\(x)?")

  default:

  print("I don't want to buy\\(phone).")

  }

  可以使用for-in語(yǔ)句來(lái)遍歷字典,需要兩個(gè)變量來(lái)表示每個(gè)鍵值對(duì)。字典是一個(gè)無(wú)序的集合,所以它的鍵和值以任意順序迭代結(jié)束。如下代碼所示:

  let studentScores = [

  "Wang": [93, 44, 55, 64, 56, 78],

  "Li": [87, 99, 24, 63, 85, 98],

  "Liu": [78, 49, 89, 86, 65],

  ]

  var largest = 0for (name, scores) in studentScores {

  for score in scores {

  if score > largest{

  largest = score

  }

  }

  }print(largest)

  使用while語(yǔ)句來(lái)重復(fù)運(yùn)行一段代碼直到不滿(mǎn)足條件,如下代碼所示:

  var i = 1while i < 200 {

  i = i * 3

  }

  print(i)

  當(dāng)然,循環(huán)條件也可以在結(jié)尾,保證循環(huán)體能至少執(zhí)行一次。如下代碼所示:

  var i = 1

  repeat {

  i = i * 3

  } while i < 200

  print(i)

 

文章來(lái)源:周兆熊的專(zhuān)欄

您還未登錄,請(qǐng)先登錄

熱門(mén)帖子

最新帖子

?