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

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

三、运算符+表达式

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. [转]JavaScript的实例化与继承:请停止使用new关键字

    JavaScript中的new关键字可以实现实例化和继承的工作,但个人认为使用new关键字并非是最佳的实践,还可以有更友好一些的实现.本文将介绍使用new关键字有什么问题,然后介绍如何对与new相关联 ...

  2. C# 获取Console的输入和输出 数据 (异步)

    using System ; using System .Diagnostics; using System .IO;   class Program {     static void Main() ...

  3. boost::function 通过boost::bind调用类成员函数

    1. 首先引用boost::function和boost::bind的头文件和库: #include "boost/bind.hpp" #include "boost/f ...

  4. 算法导论笔记——第十八章 B树

    18.1 B树的定义  18.2 B树的基本操作 与一棵二叉搜索树一样,可以在从树根到叶子这个单程向下过程中将一个新的关键字插入B树中.为了做到这一点,当沿着树向下查找新的关键字所属位置时,就分裂沿途 ...

  5. Angular 2 ViewChild & ViewChildren

    一.ViewChild ViewChild 是属性装饰器,用来从模板视图中获取匹配的元素.视图查询在 ngAfterViewInit 钩子函数调用前完成,因此在 ngAfterViewInit 钩子函 ...

  6. Java类加载原理解析(转)

    1 基本信息 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载.Java的类加载机制是技术体系中比较核心的 ...

  7. javascript关于undefined的判定

    对于我来说,在编写javascript的代码的时候,对于undefined的判定会写成: function isUndefined(para) { return (para === undefined ...

  8. nginx中有关命令和日志切割,配置文件加载的详细阐述

    一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...

  9. 2-7 Flutter开发工具使用指南

    这里选择用哪个模拟器运行 Mac系统下可以通过这个Open IOS Siumlator打开IOS模拟器 debug用来调试的 可以创建新的模拟器 选择安卓模拟器的版本 这是sdk的配置 点开就是打开了 ...

  10. Socket()与WSASocket()的区别

    socket()   创建一个通讯端点并返回一个套接口.但是在socket库中例程在应用于阻塞套接口时会阻塞.     WSASocket()的发送操作和接收操作都可以被重叠使用.接收函数可以被多次调 ...