Swift学习(三)类型推导&基本运算&分支&循环
一、Swift中类型推导&基本运算
- 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略
- 查看标识符类型:option + 鼠标左键
- 整型
- 有有符号
- 8位、16位、32位、64位跟C语言中的相同。
- Int:和平台相关,默认相当于OC中的NSInteger
- 无符号
- 8位、16位、32位、64位跟C语言中的相同。
- UInt:和平台相关,默认相当于OC中的NSUInteger
- 有有符号
- Swift中在进行基本运算时必须保证类型一致,否则会出错
- 相同类型之间才可以进行运算
- 因为Swift中没有隐式转换
- 数据类型的转化
- Int类型转成Double类型:Double(标识符)
- Double类型转成Int类型:Int(标识符)
Swift中的逻辑分支
- 和OC中if语句有一定的区别
- 判断句可以不加()
- 判断句结果 必须是一个真假值
- 正确写法:
- let y = 10
if y > 0 {
print("y > 0")
} else {
print("y <= 0")
}
- let y = 10
- 基本用法跟OC一致
- 不同:
- switch后可以不跟()
- case后可以不跟break(默认会有break)
- 例子:
- let sex = 0
switch sex {
case 0 :
print("男")
case 1 :
print("女")
default :
print("泰国来的")
}
- let sex = 0
- 补充一: 一个case判断中可以判断多个值,多个值以,隔开
- let sex1 = 0
switch sex1 {
case 0, 1:
print("正常人")
default:
print("泰国来的")
}
- let sex1 = 0
- 补充二: fallthrough 关键字可以实现case 穿透
- let sex2 = 0
switch sex2 {
case 0:
print("正常人0")
fallthrough
case 1:
print("正常人1")
default:
print("其他")
}
- let sex2 = 0
- switch 特殊用法一:支持浮点型
- let PI = 3.14
switch PI {
case 3.14:
print("π")
default:
print("not π")
}
- let PI = 3.14
- switch 特殊用法二:支持字符串类型
- let m = 5
let n = 10
var result = 0
let opration = "+"
switch opration {
case "+":
result = m + n
case "-":
result = m - n
case "*":
result = m * n
case "/":
result = m / n
default:
result = 0
}print(result)
- let m = 5
- switch 特殊用法二:switch支持区间判断
- swift中的区间常见有两种
- 开区间:0..<10 表示:0~9,不包括10
- 闭区间:0...10 表示:0~10
- let score = 80
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("及格")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}
![](http://images2015.cnblogs.com/blog/782332/201606/782332-20160622211842672-630640970.png)
- guard是Swift2.0新增的语法
- 它与if语句非常类似,它设计的目的是提高程序的可读性
- guard语句必须带有else语句,它的语法如下:
- 当条件表达式为true时候跳过else语句中的内容,执行语句组内容
- 条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
- 格式:
- guard 条件表达式 else {
// 条换语句
break
}
语句组
- guard 条件表达式 else {
- 例子:
- var manAge = 18
func hit(age: Int) -> Bool {
guard age >= 18 else {
print("打人不犯法")
return false
}
print("打人犯法")
return true
}
hit(manAge) - 打人犯法
- var manAge = 18
Swift中循环
- 常规写法
- for var i = 0; i < 3; i++ {
print(i)
}
- for var i = 0; i < 3; i++ {
- 区间for循环
- for i in0..<3 {
print("-->", i)
}
- for i in0..<3 {
- 特殊写法:如果在for循环中不需要用到下标i
- for_in0...3 {
print("hello siri")
}
- for_in0...3 {
- swift中的 while 的判断句必须有正确的真假,没有非0即真
- var aa = 0
while aa < 3 {
aa++ // 这句如果不写就会 死循环
print("hi siri")
}
- var aa = 0
- do while循环:使用repeat关键字来代替了do
- var bb = 0
repeat {
bb++
print("bbb")
} while bb > 3
- var bb = 0
Swift学习(三)类型推导&基本运算&分支&循环的更多相关文章
- Swift(一,创建对象,类型推导,基本运算,逻辑,字符串,数组,字典)
swift用起来刚开始感觉有点怪怪的,但用了一段时间觉得还是挺好用的,哈哈.毕竟都是要有一个过程的嘛. 我就写一些自己在使用swift的时候的注意点吧,如有不正之处,还请指正! 一.在开发中优先使用常 ...
- Swift学习三
http://blog.csdn.net/kuloveyouwei/article/details/36005299 Swift 提供两种集合类型来存储集合,数组和字典.数组是一个同类型的序列化列表集 ...
- Python开发【第三篇】:分支循环
1. if 条件语句 语法: if 条件: 代码块 # 条件为真执行 else: # else 可选 代码块 # 条件为假执行 示例: n = int(input('请输入一个数字:')) i ...
- Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环(三)
Swift学习--使用if和switch来进行条件操作,使用for,while,和do-while来进行循环 //switch支持随意类型的数据以及各种比較操作--不不过整数以及測试相等 //注意假设 ...
- Swift 学习- 05 -- 集合类型
// 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...
- swift学习第九天:可选类型以及应用场景
可选类型的介绍 注意: 可选类型时swift中较理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可以 ...
- 【Swift学习】Swift编程之旅---集合类型之数组(六)
swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...
- 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告
一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...
- Python基础学习三 list-增删改查、切片、循环、排序
一.list 增删改查 1.增加 方式一: stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] stus.append('test001')#从最后面开 ...
随机推荐
- apidoc,一个相当不错的文档生成器
http://apidocjs.com/ 例子:myapp目录下的MyCode.java /** * * @api {get} /company/list 获取公司信息 * @apiName 获取公司 ...
- html元素背景样式大小调整
定义元素背景设置 background-size属性cover自适应填充背景,background-size: 100% 100%; background-size: 左右比例 上下比例: 再介绍几 ...
- CSS图片垂直居中方法
让div里面的多行文本垂直居中的方法: div{height:100px;width:100px;border:solid 1px red;text-align:center; display:tab ...
- (WF)InvalidWorkflowException
之前一直运行正常的xaml突然不能运行了,总是显示如下错误. The test caught an unhandled exception. Caught: System.Activities.Inv ...
- 四层LB和七层LB
总结: 基于MAC地址玩的是二层(虚拟MAC地址接收请求,然后再分配到真实的MAC地址), 基于IP地址玩的是三层(虚拟IP地址接收请求,然后再分配到真实的IP地址), 基于IP地 ...
- 8.4c#递归
一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出口) ...
- make[1]: *** [pcrecpp.lo] 错误 1
在安装:pcre-8.30 时,报如下错误: [root@localhost pcre-8.30]# make && make installmake all-ammake[1]: ...
- winform DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部 z
http://www.zuowenjun.cn/post/2015/05/20/162.html 判断 DataGridView控件滚动条是否滚动到当前已加载的数据行底部,其实方法很简单,就是为Dat ...
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份(转)
问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这 ...
- C++学习16 继承时的名字遮蔽
如果派生类中的成员变量和基类中的成员变量重名,那么就会遮蔽从基类继承过来的成员变量.所谓遮蔽,就是使用新增的成员变量,而不使用继承来的. 成员函数也一样,如果函数名和参数签名都相同,就会造成遮蔽.如果 ...