swift学习笔记3-4
再牛逼的梦想,也抵不住你傻逼似的坚持!
我跑啊跑啊,为的就是赶上那个被寄予厚望的自己。
三、运算符+表达式
swift允许重载运算符,比如 “+”你可以重载它
后续会详细介绍
赋值运算符 pass
算数运算符 大部分 pass,只说特殊的
19/4 结果是4 而不是5 //截断取整
借助ANSI C标准库中的<math.h> 中的数学函数 完成复杂数学运算
import Foundation
var b = pow(3.2,5) //3.2的5次方
var c = sqrt(3.2) //平方根
0~10的随机数 var d = arc4random() %10
var e = sin(1.57) //1.57当成弧度
- 求负
溢出运算符 ,对溢出数据位进行截断,程序更加健壮
&+ ,&-,&*,&/,&%
有符号整数,最高位是符号位,0代表正数,1代表负数。
计算机 以补码的形式保存整数,正数的补码和源码相同,负数的补码 = 反码+1 (按位取反,最高位不变)
位移运算符:
左移N位相当于乘以2的N次方,右移则是除以2的N次方。
范围运算符:
a...b 包括 a,b边界。for in会用到
var range = 2...6
for num in range
{
pringtln(num*5)
}
a..<b 遍历数组的时候用(你懂的,因为从0开始嘛)
let books = ["oc","swift","java","go"]
for index in 0..<books.count
{
println(books[index])
}
比较运算符:=== 判断引用类型的变量,引用同一个对象时返回ture了
逻辑运算符:
两个的 会短路:就是前边表达式判断完,后边就不判断了,没有执行的机会,直接得出结果
&& 与 有false则false
& 与 但是 不会短路
三目运算符:
var c =5 ,d = 5
c>d ?println("c大于d"):(c<d?println("c小于d"):println("c等于d"))
nil 合并运算符: ??
a??b 判断a是否为nil,不为nil,返回a值,为nil,则返回默认b值,要求类型必须一致!
例 let defaultName = "renhairui"
var name:String?= "engineer"
println(name ?? defaultName) // 输出 engineer
var nameNil :String?
println(nameNil ?? defaultName) // 输出 renhairui
其实 a ?? b 相当于 a !=nil ?a!:b
四、流程控制
分支结构
循环结构
if else 要先处理范围小的情况
var age = 45
if age >60
{
println("老年人")
}
else if age>40{
println("中年人")
}else if age>20{
println("青年人")
}
switch 不会继续执行下一个case
var score = "c"
switch score
{
case "a","A":
println("优秀")
fallthrough 贯穿
default:
break 直接忽略
}
var score = 87
switch score{
case 91...100:
println("优秀")
case 同理
}
var somePoint = (x:1,y:-4)
switch somPoint
{
case (0,0):
println("原点")
case(_,0):
println("X轴")
case(0,_):
println("Y轴")
case(0...Int.max,0...Int.max):
println("第一象限")
}
case 值绑定
var score= 178
switch score
{
case 91...100:
println("youxiu")
case 0..<60:
println("")
case let grade:
println("输入的成绩\(grade)不合法")
}
var somePoint = (x:2,y:0)
switch somePoint
{
case (0,0):
println()
case(var x,0):
println("位于X轴上,x值为\(x)")
case(0,var y):
println("位于Y轴上,y值为\(y)")
case(x,y):
println("位置为:\(x),\(y)")
}
where给case增加额外的判断条件
case var(x,y) where x>0 && y>0:
println("\(x),\(y)位于第一象限")
循环体:被重复执行的代码
for 循环 可以同时指定多条初始化,也可以是一个包含逻辑运算符的表达式
for var b= 0,s=0,p =0; b<10 && s<4 &&p<10;p++
{
}
return 可以结束整个方法 函数
break 完全结束一个循环,跳出循环体,无论在那种循环。
continue 忽略本次循环的剩下语句
swift学习笔记3-4的更多相关文章
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记4——扩展、协议
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记2——函数、闭包
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记1——基础部分
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- Swift学习笔记一
最近计划把Swift语言系统学习一下,然后将MagViewer用这种新语言重构一次,并且优化一下,这里记录一下Swift的学习笔记. Swift和Objective-C相比,在语法和书写形式上做了很多 ...
- 记录:swift学习笔记1-2
swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...
- Swift学习笔记(14)--方法
1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方 ...
随机推荐
- AtCoder Grand Contest 004 C:AND Grid
题目传送门:https://agc004.contest.atcoder.jp/tasks/agc004_c 题目翻译 给你一张网格图,指定的格子是紫色的,要求你构造出两张网格图,其中一张你可以构造一 ...
- java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理
内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory ...
- linux下安装Drcom
环境:台式机物理机,centos7 因为要下载依赖包,物理机一开始没有网络,所以我先使用的是实验室的公用ip,然后完成以下操作(网上有大神说,可以现在其他机器上下载依赖包,copy过来也可以,但我没有 ...
- Django ORM 那些相关操作
Django ORM 那些相关操作 一般操作 必知必会13条 <> all(): #查询所有的结果 <> filter(**kwargs) # 它包含了与所给筛选条件相匹配的对 ...
- Java负数的位运算
/** * 求负数的位运算 *///1. -10 >> 2 = ?//2. -10的原码: 1000 0000 0000 0000 0000 0000 0000 1010 最高位代表符号位 ...
- E20190418-hm
distinct adj. 明显的,清楚的; 卓越的,不寻常的; 有区别的; 确切的; predicate vt. 断言,断定; 宣布,宣讲; 使基于; n. 谓语; 述语;
- ApplicationContext的三个常用实现类:
ClassPathXmlApplicationContext 它可以加载类路径下的配置文件,要求配置文件必须在类路径下,不在的话加载不了 (java中获取类路径下资源的方式) FileSystemXm ...
- ue4 2游戏构架相关
官网:游戏性指南 https://docs.unrealengine.com/latest/CHN/Gameplay/index.html 深入UE4剖析源码,浅出GameEngine设计理念,比较好 ...
- 约数和问题 (codevs2606 && 洛谷2424)
P2424 约数和 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f ...
- python 之 软件开发目录规范 、logging模块
6.4 软件开发目录规范 软件(例如:ATM)目录应该包含: 文件名 存放 备注 bin start.py,用于起动程序 core src.py,程序核心功能代码 conf settings. ...