再牛逼的梦想,也抵不住你傻逼似的坚持!

我跑啊跑啊,为的就是赶上那个被寄予厚望的自己。

三、运算符+表达式

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的更多相关文章

  1. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  2. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

  3. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  4. swift学习笔记4——扩展、协议

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  5. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  6. swift学习笔记2——函数、闭包

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  8. Swift学习笔记一

    最近计划把Swift语言系统学习一下,然后将MagViewer用这种新语言重构一次,并且优化一下,这里记录一下Swift的学习笔记. Swift和Objective-C相比,在语法和书写形式上做了很多 ...

  9. 记录:swift学习笔记1-2

    swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...

  10. Swift学习笔记(14)--方法

    1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方 ...

随机推荐

  1. BZOJ3165:[HEOI2013]Segment

    浅谈标记永久化:https://www.cnblogs.com/AKMer/p/10137227.html 题目传送门:https://www.lydsy.com/JudgeOnline/proble ...

  2. μC/OS-II与RT-Thread对比—任务调度

    在任务调度器的实现上,μC/OS-II和RT-Thread都采用了位图调度(bitmap scheduling),任务优先级的值越小则代表具有越高的优先级,主要区别在于实现形式,是采用多级队列的形式, ...

  3. maven学习八 关于maven的version

      在一个有继承关系的POM文件中,父项目中有如下定义: <dependencyManagement> <dependency> <groupId>com.type ...

  4. hibernate学习五 Hibernate补充

    1  MiddleGenIDE可以生成映射类和映射文件. 2

  5. PCB上的导线 怎么开窗 去掉绿油 把铜皮裸露

    开窗是个专业术语,你可以简单的理解为"去掉绿油,把铜皮裸露". 导线开窗用途一: 例如这个板子中的蛇形天线,就是导线开窗后的效果. 导线开窗用途二: 把需要过大电流的导线开窗,就可 ...

  6. 使用c语言实现的常用函数

    /* 为了面试准备的,有些在工作中也可以用用,本人算法方面比较欠缺,如果有更优秀的算法麻烦告诉我啊 */ /* strcat的实现 */ #include <assert.h> char* ...

  7. 蓝桥杯 正则问题(dfs)

    1607: 正则问题 时间限制: 1 Sec  内存限制: 256 MB提交: 34  解决: 13[提交][状态][讨论版] 题目描述 考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达 ...

  8. JQuery EasyUI validate 扩展

    validate 扩展js $.extend($.fn.validatebox.defaults.rules, { equals: { validator: function(value,param) ...

  9. 简单的GTK窗体搭建

    #include<gtk/gtk.h> //必须引用gtk/gtk.h这个头文件 2 int main(int argc,char *argv[]) //标准c语言主函数的声明 3 { 4 ...

  10. AJAX 入门教程

    一.前言 AJAX 是我们教程用到的请求数据的技术,在这里我就给自己做一个小结. 二.案例 我使用的是 JQuery 的 AJAX 来实践.后端服务我使用的是 c# 的mvc. 后端代码: using ...