前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift体验2

Swift体验2

作者头像
用户3004328
发布2018-09-06 16:40:02
3300
发布2018-09-06 16:40:02
举报
文章被收录于专栏:增长技术增长技术

控制流

使用ifswitch做条件判断,使用for-in,for,while,do-while做循环 操作。括号中的条件或循环变量是可选的。括号的身体是必需的。

代码语言:javascript
复制
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores{
  if score > 50{
    teamScore += 3
  }else{
    teamScore +=1
  }
}
teamScore

在if语句,条件必须是一个布尔表达式–这意味着像if score {...}的代码是一个错误的 不会隐式的和0比较。

你可以使用iflet来判断可能会丢失的值。这些值的表示为可选的。一个可选值包含一个 值或包含零表明缺失值。写一个问号(?)在类型的后面标记为值是可选的。

代码语言:javascript
复制
var optionalString: String? = "Hello"
optionalString == nil

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName{
  greeting = "Hello, \(name)"
}

实验 改变optionalName的值为nil,观察greeting的值?增加一个else分支设置当oprionalName==nil 时greeting的值

如果可选值为nil,判断条件为false此块代码跳过,否则可选值赋值给let后的常量,这个值在 后面的代码块中可以获取到。

switch支持任何类型的数据和各种各样的比较操作,不受限与整数值和测试数量。

代码语言:javascript
复制
let vegetable = "red pepper"
switch vegetable{
  case "celery":
      let vegetableComment = "Add some raisins and make ants on a log."
  case "cucumber", "watercress":
      let vegetableComment = "That would make a good tea sandwich."
  case let x where x.hasSuffix("pepper"):
      let vegetableComment = "Is it a spicy \(x)?"
  default:
      let vegetableComment = "Everything tastes good in soup."
}

实验 试着去掉default分支,看有什么错误?

switch执行匹配的分支语句后程序退出。不继续执行接下来的情况,所以不需要显式地在每个 分支后加break代码

for-in去迭代字典中的键值对。

代码语言:javascript
复制
let interestingNumbers = [
  "Prime": [2, 3, 5, 7, 11, 13],
  "Fibonacci": [1, 1, 2, 3, 5, 8],
  "Square": [1, 4, 9, 16, 25]
]

var largest = 0
for (kind, numbers) in interestingNumbers{
  for number > largest {
    largest = number
  }
}
largest

实验 添加另一个变量来跟踪kind的数量,以及那最大的数字是什么。

while重复执行代码直到条件改变

代码语言:javascript
复制
var n = 2
while n < 100 {
  n = n * 2
}

n

var m = 2
do{
  m = m * 2
}while m < 100

m

可以使用..来表示循环索引的范围

代码语言:javascript
复制
var firstForLoop = 0
for i in 0..3 {
  firstForLoop += i
}
firstForLoop


var secondForLoop = 0
for var i = 0; i < 3; ++i {
  secondForLoop += i
}
secondForLoop
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 控制流
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档