美文网首页
swift第二周学习总结

swift第二周学习总结

作者: 离殇丶 | 来源:发表于2016-08-06 16:58 被阅读0次

本周,开始系统的学习swift的语法。

常量(let)和变量(var)

正常情况下表示整数首选Int,表示小数首选Double(Float很少使用),表示字符串首选String,表示真假首选bool
Swift具有强大的类型推断
如果可以的话尽可能省略类型标记,让编译器自动推断变量或常量额类型

&& - 短路与运算(而且)同时满足两边的条件为真时成立
|| - 短路或运算(或者)至少满足其中一边的条件为真时成立

let year = 1900
if year % 4 == 0 && year % 100 != 0 || year % 400 == 0
{
    
}
else
{
    
}

print("Hello, World!")
print("Hello, World!",terminator: " ")加上terminator: " "可以使print输出时不换行

unary 一元运算符
binary 二元运算符
ternary 三元运算符

三元运算符 question ? answer1 : answer2
“ ? ”两边一定要有空格
问号前面是一个产生Bool类型的变量,常量或表达式。如果其值为true,就取 : 前面的值,为false就取 : 后面的值

本周重点

循环结构

1.while循环 - 可能一次都不执行

var y = 1
var x = 2
while x <= 100
{
    y += x
    x += 1
}
print(y)

满足 while x <= 100 时,进入循环
当循环到 x > 100时,循环结束

2.repeat - while循环 - 至少执行一次

var u = 1
var i = 2
repeat
{
    u += i
    i += 1
}while i <= 100

print(u)

程序运行时repeat - while循环至少会执行一次
当while i <= 100 条件成立时
会继续循环,直到不满足条件

3.for循环

var b = 0
for a in 1...100
{
    b += a
}
 print(b)

for循环会循环1到100次,左右为闭区间

猴子吃桃
猴子有一堆桃子,每天吃一半多一个,吃了N天,还剩一个,问原来有多少个桃子

print("请输入天数")
var a = inputInt()
var b = 1
for _ in 1...a
{
    b = (b+1)*2
}
print(b)

水仙花数
求100-999中的水仙花数,(若三位数abc,abc=a3+b3+c^3, 则称abc为水仙花数。如153,13+53+3^3=1+125+27=153,则153是水仙花数

for i in 100...999
{
let b = i % 10
let d = i / 100
let c = (i % 100) / 10
if i == b * b * b + c * c * c + d * d * d
{
    print("\(i)是水仙花数")
}
else
{
    print("\(i)不是水仙花数")
}
}

穷举法(穷尽所有的可能性直到找到正确答案)
百元百鸡
用100元买100只鸡,要求小鸡1元3只,公鸡5元每只,母鸡3元每只,问100元可以买到的鸡的方按

for x in 0...20 {
    for y in 0...33 {
        let z = 100 - x - y
        if 5 * x + 3 * y + z / 3 == 100 && z % 3 == 0 {
            print("公鸡: \(x), 母鸡: \(y), 小鸡: \(z)")
        }
    }
}


数组
1.创建数组
var a = [Int](count: 26, repeatedValue: 0)//定义一个放整数的数组(6个元素,初始值都是0)
var array1 = [String]()//定义一个放字符串的空数组
var array2: [Int] = []//定义一个放整数的空数组
var array3 = [99, 12, 65, 55, 100]
var array4 = [Int](count: 100, repeatedValue: 1)
var array5 = [String](count: 100, repeatedValue: "hehehe")


2.获取数组元素个数
print(array1.count)

3.对数组中的元素进行遍历

for i in 0..<array3.count
{
    //[]是对数组进行下标运算(取出指定位置的元素)
    print(array3[i])
}可以在循环中修改数组的值

只读循环(在循环过程中不能修改数组元素)
var sum = 0
for str in array3
{
    sum += str
    print(sum)
}


可以修改数组的值
index 表示数组中元素所在的位置,value表示数组中元素的值
for (index, value) in array1.enumerate()
{
    print("\(index + 1). \(value)")
}

4.向数组中添加元素
array1.append("strawberry") append追加元素,加到数组的最后面
array1.insert("watermelom", atIndex: 2)insert追加元素,加到数组atIndex:X X的值位置

5.从数组中删除元素
array1.removeAtIndex(2) 删除数组中 位置2上的元素
array3.removeAll() 删除整个数组

6.数组的复制
let array6 = array1 复制array1到新建的array6
var array7 = array1[1...3]   只复制数组中的第2到第4个

7.数组加法
let array8 = array1 + array5

8.数组排序
var array = [23, 34, 42, 21, 43, 54, 67, 65]
array.sortInPlace() sortInPlace对数组进行排序,默认为升序
sortInPlace(>)降序
let newArray = array.sort() sort对数组进行排序,将排序结果给newArray数组,默认为升序
sort(>)降序
排序

1.简单选择排序,每次从剩下的元素中找最小的元素放到对应的位置

for j in 0..<array.count - 1
{
var minIndex = j 第一次循环中 假设第一个数为数组的最小数,即j = 0
for i in j + 1..<array.count
{
    if array[i] < array[minIndex] 如果发现数组中有比第一个数小的数,就标记它的位置,并用它与剩下的数作比较
    {
        minIndex = i
    }
}
(array[j], array[minIndex]) = (array[minIndex],array[j])
循环完后,将标记的数与第一个数做交换
}
直到完成整个循环
print(array)


2.冒泡排序:两两比较,前面元素比后面元素大就交换位置

for i in 0..<array.count - 1
{
    var swapped = false
    for j in 0..<array.count - 1 - i
    {
        if array[j] > array[j + 1] 数组相邻的两个元素两两比较,前面元素比后面元素大就交换位置
        {
            (array[j], array[j + 1]) = (array[j + 1], array[j])
            swapped = true
        }
    }
    if swapped == false//if !swapped {} 代码优化:如果在内部for进行完一次后,没有发生元素交换就终止循环
    {
        break
    }
}
print(array)


本周在反复的使用循环结构做练习,在练习中熟悉循环结构。循环结构在以后Swift中有巨大的作用,为以后的编程打下基础。

相关文章

  • Swift第二周学习总结

    Swift总结 一、字典(dictionary) 1.字典:存放键值对组合的容器。2.字典中的每个元素都有两部分构...

  • Swift第二周学习总结

    字典与集合 写在前面数组、字典、集合是Swift中最广泛使用的三种集合类型(Three Primary Colle...

  • Swift第二周学习总结

    一. 字典(Dictionary)与集合(Set) 1. 字典 -- 存放键值对组合的容器 字典中的每个元素都是由...

  • swift第二周学习总结

    本周,开始系统的学习swift的语法。 常量(let)和变量(var) 正常情况下表示整数首选Int,表示小数首选...

  • Swift第二周学习总结

    第六天 集合 1.集合的定义 2.集合的相关应用 字典 1.字典的定义 2.字典的相关应用 函数 1.定义函数 2...

  • Swift第二周学习总结

    Swift第二周学习任务 一.容器类(集合,字典) 1.集合 集合存储方式为哈希存储,在集合内每个数都是无序的。并...

  • UI基础学习1+

    UI第一天学习总结 通过swift基础语言的三周学习过后,今天迎接来了iOS开发第二阶段的学习--UI First...

  • Swift学习总结

    Swift学习总结 现在学习Swift这门语言也两周了,也算开了个头了,刚开始学习可能对以前有过其它语言学习经验的...

  • swift第一周学习总结

    swift第一周学习总结 什么是swift语言 swift 语言是苹果公司在2014年的WWDC大会上发布的全新的...

  • 2018-03-10

    Python第二周学习总结 导读:这是python学习的第二周,在第二周,学习了大量的python基础,其中有字符...

网友评论

      本文标题:swift第二周学习总结

      本文链接:https://www.haomeiwen.com/subject/lsiksttx.html