服务器之家

服务器之家 > 正文

Swift学习笔记之逻辑分支与循环体

时间:2021-01-09 17:43     来源/作者:大基本功

分支的介绍

  • 分支即if/switch/三目运算符等判断语句
  • 通过分支语句可以控制程序的执行流程

1.if

OC

  • 后面条件必须加()
  • 后面提条件非0即真
  • 如果只有一条if后面的大括号可省略
?
1
if(a>0)NSlog(@"yes");

Swift

  • if 后面不加括号
  • if 后面条件必须是明确的Bool类型
  • 即使只有一条指令if后面的大括号亦不可省略

if else 的使用与OC一致,只是条件语句后不加括号;三目运算符和OC基本一致;

2.guard

guard 是swift2.0 新增语法

与if语句非常类似,设计目的是提高程序的可读性

guard语句必须带有else语句,语法如下

当条件表达式为true时,跳过else语句中的内容,执行语句组内容

当条件表达式为false时 ,执行else语句内容,跳转语句一般是return,break,continue,throw

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//如果一个成年人带了省份证才能上网
 func cherk(age:Int hasCard:Bool){
  if age >= 18{
   if hasCard{
   print("老板,开个机")
   }else{
   print("回家拿身份证")
   }
  else{
   print("未成年不能上网")
  }
 }
 func cherkGuard(age:Int hasCard:Bool){
  guard age >= 18 else {
  print("老板,开个机")
  return
  }
  guard hasCard else {
  print("回家拿省份证")
  return
  }
  print("未成年不能上网")
}

2.switch的基本使用

OC中

  • switch后面条件必须加()
  • case后面只能跟一个条件
  • case会有穿透效果
  • 可以不写default
  • default位置可以随便放
  • 在case中定义变量需加大括号,否则作用域会混乱
  • 不能判断对象或浮点类型,只能判断整数

Swift中

  • switch后面条件可以不加()
  • case后面能跟多个条件用逗号隔开
  • case不会有穿透效果 要穿透后面加fallthrough
  • 不可以不写default
  • default位置必须放最后
  • 在case中定义变量不需加大括号
  • 能判断对象或浮点类型,只能判断整数

3.switch的特殊使用

区间匹配

区间概念:

通常描述的是数字区间

半开半闭区间

闭区间

?
1
2
let range = 0...10//闭区间代表区间0~10
let range1 = 0..<10半开半闭区间代表区间0~9

区间操作:

  • 交集:clamped
  • 是否重叠:overipas
  • 判断包含:contains
  • 是否为空:isEmpty

元组匹配

?
1
2
3
4
5
6
7
8
9
10
11
let point = (10,15)
switch point{
  case (0,0)
  print("坐标在原点")
  case (1...10,1...10)//可在元祖中加上区间
  print("坐标X,Y在1...10之间")
  case (,0)//可在元祖中加上区间
  print("坐标X在X轴上")
  default
  print("其它")
 }

值绑定

?
1
2
3
4
5
6
7
8
9
10
11
let point = (10,15)
switch point{
  case (var x,0)
  print("x=\(x)")//point中的x赋值给x
  case (10,var y)
 print("y=\(y)")//point中的y赋值给y
  case var(x,y)
  print("x=\(x) y=\(y)")//point中的xy赋值给xy
  default
  print("其它")
}

根据条件绑定

?
1
2
3
4
5
6
7
8
let point = (100,10)
switch point{
  //只有where后面的条件语句表达式为真财赋值并执行case后面的语句
  case var( x,y) where x > y
  print("x=\(x) y=\(y)")
  default
  print("其它")
}

3.for循环

区间写法

?
1
2
3
for _ in 0..<10{ //_代表忽略的意思
print("xxx")
}

4.while循环与do while循环

while 循环

?
1
2
3
4
5
var i =10
while i > 0{
i-=1;
print (i)
}

do while 循环

?
1
2
3
4
repeat {//swift 中不用do ,do在swift有特殊含义,用于捕捉异常
 i +=1
 print(i)
}while i < 10

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.jianshu.com/p/3ede7b856474

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部

778
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40