swift入门第三章集合、控制流,标签语句

数组

swift中的集合有:数组、字典、set。三者的区别为

  • 1、在swift中的集合类=是值类型,而OC中的是引用类型
  • 2、在swift中使用引用计数的概念来管理内存,但是引用计数只适用于对象类型,值类型不需要管理
  • 3、swift中引用计数管理内存的方法与OC中的引用计数管理内存的方法还是不同的
  • 4、在swift中数组是可以存放任意类型的,OC中只能存放对象类型

数组

1. swift中,Array也没有可变和不可变之分,而是取决于用什么关键字来修饰,var就是可变,let就是不可变
2. 使用字面量来给一个数组赋值
当我们显式声明数组中元素的类型时,内部的元素类型必须一致(隐式的话只要是对象就可以)
var array:[String] = ["ayang", "yang", "shuaiqi"]

数组增加元素

1.调用append方法进行元素添加时,是添加到数组最后面
array.append("shuai")
2.调用+=方法进行元素添加,也是添加到数组最后面
array += ["haha", "heihei"]
3.调用insert方法进行元素添加
array.insert("hehe", atIndex: 0)

数组删除元素

1.删除指定下标的元素
array.removeAtIndex(2)
2.删除所有元素
array.removeAll(keepCapacity: true)

改变数组中的元素

1.通过下标来更改元素
array[0] = "happy"
array[1] = "yes"
2.利用下面的方法,不仅可以修改,而且可以删除元素
array[0...3] = ["1", "2", "3"]

数组查询

利用for-in来进行数组遍历
for value in array {
    println("value = \(value)")
}

使用全局enumerate函数返回一个由每一个数据项索引值和数据值组成的元组

for (index, value) in enumerate(array) {
    println("\(index):\(value)")
}

数组的初始化(声明存储固定类型的数组)

使用构造方法创建的是由一个特定数据类型构成的数组
第一种方式
var initArray:[String] = [String](count: 3, repeatedValue: "hehe")
第二种方式
var initArray2:Array<String> = Array(count: 4, repeatedValue: "jian")

字典

使用字面量来给字典进行赋值(无序排列)

var dictionary = ["name":"doubleDragon", "age":24, "gender":"male"]

使用下标增加键值对
dictionary["address"] = "anyWhere"
dictionary["number"] = 24

调用removeValueForKey方法进行删除
dictionary.removeValueForKey("name")

1.使用键,修改固定键对应的值,若键不存在,则是添加
dictionary["number"] = 20
2.使用updateValue方法进行修改
updateValue可以进行修改和添加,当填入的键存在时就会进行数据更新,把键对应的老的值返回出来。当键不存在时,就会进行添加,返回nil
let returnValue = dictionary.updateValue(10, forKey: "number")
let returnValue2 = dictionary.updateValue(30, forKey: "class")

查(遍历字典)

for (key, value) in dictionary {
    println("key = \(key), value = \(value)")
}

字典初始化的方法也有两种

使用字典初始化方式创建的是固定键值类型的字典
1.
var initDictionary:[String:String] = [String:String]()
2.
var initDictionary2:Dictionary<String, String> = Dictionary()

控制流

for循环

1.for-in循环
for value in 1...10 {
    println("value = \(value)")
}
当我们不需要使用区间的值时,可以使用_告知系统
for _ in 1...10 {
    println("good")
}
2.for循环
for var index = 0; index < 10; index++ {
    println("index = \(index)")
}

while循环

var whileNumber = 0
while whileNumber < 10 {
    println("whileNumber = \(whileNumber)")
    whileNumber++
}

do-while循环

do {
    println("执行一次")
} while(false)

if-else语句

var aValue = 20
if aValue <= 21 {
    println("aValue <= 21")
} else {
    println("aValue > 21")
}

switch-case语句

1.在swift中,是没有贯穿的,只会执行满足条件的语句,不用加break也不会贯穿
2.每一个case分支中都必须有一个语句,假如真不想写,可以加break,通过编译
3.swift中,case可以加多个条件
4.若想贯穿可以加fallthrough
var switchNumber = 10
switch switchNumber {
case 10, 3, 2, 8:
    println("10")
    fallthrough
case 11:
    println("11")
case 12:
    break
case 13:
    println("13")
default :
    println("other")    
}
5.swift中,switch-case可以进行值的绑定
var (x, y) = (10, 0)
switch (x, y) {
case (let xValue, 0):
    println(xValue)
case (10, let yValue):
    println(yValue)
default:
    println("others")
}
6.swift中,switch-case可以进行区间匹配
var domainNumber = 50
switch domainNumber {
case 0...10:
    println("哈哈")
case 11...100:
    println("嘿嘿")
case 101...10000:
    println("哼哼")
default:
    println("others")
}

控制流中,我们会遇到的关键字:break,continue,fall through

break在循环当中,跟c语言的语法规则一样,用来结束整个循环
continue在循环中,跟c语言的语法规则一样,用来结束本次循环

标签语句

当我们遇到多个循环嵌套的时候,我们根据需求,想要关掉某个循环,此时我们就要使用标签语句,用来区别不同的循环。标签语句的定义语法:name:写到想要标识的循环前面.
ayang: while true {
    for var labelNumber = 0; labelNumber < 100; labelNumber++ {
        if labelNumber == 5 {
            break ayang
        } 
        println("labelNumber = \(labelNumber)")
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值