Swift第一周學習總結

一. 認識Swift

1.標識符的命名規則

1. 字母(Unicode字符)、數字、下劃線,數字不能開頭
2. 大小寫敏感
3. 不能使用關鍵字做標識符
4. 駝峰標識 - 第一個單詞全小寫以后每個單詞首字母大寫
5. 見名知意

2.終止符

關鍵字 terminator --打印完成后如有其它打印文字不會換行,繼續打印。print打印函數默認打印完成后自動換行

print("Hello, World", terminator: "")

3.字符串插值

關鍵字 (成員變量) 將成員變量值插入字符串中

let a = 10, b = 10
print("\(a) + \(b) = \(a + b)")

//成員變量作除法時的一些特殊情況
let x = 5
let y = 0
print(x / y)    // 運行時異常

// 整數除以0產生運行時異常
// 小數除以0可能的結果是inf/-inf/nan
// inf - infinity(無窮大)
// nan - not a number(不是一個數)

4.轉義字符

轉義字符一般全面都會帶一個/。
/n 代表換行符
/t 代表制表符

//print("Hello, World!", terminator: "\n")
//print("大家好", terminator: "\t")
//print("我是制表符")

二.變量和常量

常量關鍵字 let
變量關鍵字 var
Swift具有根據你的數據來判斷類型進行保存的特點(類型推斷)

let m  = 10 //不可變的整型變量
var n  = 10 //可變整型變量
let m  = true //不可變的Bool值
var n  = true //可變Boll值的變量
let m  = 5.2  // double - 不可變
var n  = 5.2  // double - 可變
let m  = "Hello World" // String - 不可變
var n  = "Hello World" // String - 可變

正常情況下表示整數首選Int, 表示小數首選Double
表示字符串首選String, 表示真假首選Bool

元組(tuples)用一個變量或一個常量保存多項數據信息的的類型

//方式1
let stu = (1001, "學生1", true, 23)//定義元組
let number = stu.0 // 取出元組中學號
//方式2
let stu : (id: Int, name: String, gender: Bool, age: Int) = (1001, "學生1", true, 23)//定義元組
let name = stu.name // 取出元組中的名字

// 用元組交換兩個變量的值
var x = 5, y = 10
(x, y) = (y, x)
print(x)
print(y)

三.運算符

運算符(運算符兩邊的變量或常量類型必須一致才能做運算)

  • 算術運算符: + - * / %
  • 關系運算符: == != > >= < <=
  • 短路運算符: && ||
//
//算術運算符
var str1 = "Hello"
var str2 = "world"
str1 = str1 + " " + str2 //字符串拼接
print(str1)
//關系運算符
print(str1 > str2)//是一個Bool
//查看字符串的大小 - utf16
var str5 = "王大錘"
for temp in str5.utf16 {//str5.utf16 - 查看字符串大小
    print(temp)
}
var str6 = ""
for temp in str6.utf16 {
    print(temp)
}
print(str5 < str6)
let year = 2000
let c1 = year % 4 == 0      // 四年一閏
let c2 = year % 100 != 0    // 百年不閏
let c3 = year % 400 == 0    // 四百年又閏
//短路運算符
// && - 短路與運算(而且)
// || - 短路或運算(或者)
if (c1 && c2) || c3 {
    print("\(year)年是閏年")
}
else {
    print("\(year)年不是閏年")
}

三元運算符

let msg = username == "admin" && password == "123456" ? "登錄成功!!!" : "非法用戶!!!"
//提醒: 三元條件運算的?前面一定要加空格!!!

四.分支結構

1.if語句控制的分支結構

格式

if true {
}
else if ture {
}
else{
}
//優先執行true, 如果Bool值為假就往下繼續判斷,直到else都為假執行else語句

2.switch語句控制的分支結構

格式

switch(num) //num為一個變量用作于判斷
{
//case的值與變量的值做判斷,如果想等執行.case的值可以為一個范圍
    case 0:
        print(num) //如果num等于0,執行
    case 1:
        print(num)
    case 2..<5 :
        print(num) //如果num的值在大于等于2且小于5的時候,執行
    default:
        print("最后執行") //如果前面分支都沒有執行,最后會執行default
}

五.循環結構

1.for in 循環

該循環可以帶變量也可不帶變量,如果有變量類型只能為Int,每循環一次變量+=1.
in后面是變量范圍 1...5,代表該變量的值是從1增加到5,循環5次. 1..<5,代表該變量值從1到4(不包括5),循環4次。循環的次數是由in后面的范圍決定的

for _ in 0...5 {
    print("代碼執行6次循環,沒有變量")
}
for i in 0..<5 {
    print(i) // i - 0 ~ 4
}

2.while循環

當while后面的值為true時代碼會進入循環,如果為false結束循環。

var i = 1
var judge = true
while judge {
    if i = 10 {
        judge = false
    }
    i += 1
    print("循環在繼續")
}
//當i = 10時, judge為false.等到下次執行到while時,不會執行循環內的語句.循環終止

3.repeat while 循環

repeat while 循環與while循環的最大區別是,他的判斷條件是寫在循環最后面的,意思就是說每次循環結束后進行判斷,如果條件為true,繼續循環.反之,結束循環,執行后面的代碼.當第一次進入循環時,不論條件真假都會至少執行一次循環內的代碼

var judge = false
repeat { //至少執行一次循環
    print("正在循環內")
}while judge  //該代碼會執行一次打印語句
var judge1 = true
var num = 1
repeat { //先執行,后判斷
    num += 1
    if num == 10 {
        print("我已經循環了10次啦")
        judge1 = false
    }
}while judge1

六.數組

1.swift的數組有多種定義方法

var numArray :[Int] = [] // 創建一個可變空數組
var numArray = [Int]() //創建一個可變空數組
var numArray = [4, 6, 3, 7] //類型判段,你傳入的數組是什么類型數組num就為什么類型
var numArray = [Int](count: 10, repeatedValue: 0)) //創建一個可變整型數組,數組元素為10個,每個元素的初始值都為0.

2.獲取數組元素個數

方法為count

var numArray = [1, 2, 3, 4, 5]
let number = numArray.count

3.遍歷數組

1.直接遍歷(遍歷出來的值為只讀屬性,不能修改數組元素的值)

var numArray = [1, 2, 3, 4]
for num in numArray {
    print(num) //每次遍歷的num是從數組中按順序依次遍歷出來的.
}

2.利用元素下標進行遍歷

var numArray = [1, 2, 3, 4, 5]
for index in 0..<numArray.count {
    print(numArray[index]) // index代表數組元素編號,利用編號能夠拿到數組中每個元素的值
}

3.取到下標及元素值遍歷

var numArray = [1, 2, 3, 4, 5]
for (index, value) in numArray.enumerate() {
    print("\(index + 1). value") // index代表元素下標,value代表數組中該下標對應的值
}

4.增加數組中的元素

方法名append, insert

var numArray = [1, 2, 3, 4, 5]
numArray.append(3) // 默認將數字3添加到數組中最后一個元素
numArray.insert(2, atIndex:0) // 通過下標控制,可以使添加的元素添加到任意位置

并且swift數組還可以利用+=運算符進行添加元素

var numArray = [1, 2, 3, 4, 5]
numArray += [2] //默認也是加到數組中最后一個元素

5.刪除元素

方法名remove

var numArray = [1, 2, 3, 4, 5]
numArray.removeAll(keepCapacity:Bool) //刪除數組中所以元素如果Bool值是true,不會刪除其空間
numArray.removeFirst(n:Int) //刪除前面n個元素
numArray.removeRange //刪除范圍,需傳入一個范圍

6.數組的復制

var numArray = [1, 2, 3, 4, 5]
let numArray1 = numArray //全部復制
var numArray2 = numArray[0..3] //輔助一部分

7.數組做加法

var numArray = [1, 2, 3, 4, 5]
let numArray1 = [1, 2]
let numArray2 = numArray + numArray1

8.數組排序

方法名sort

var numArray = [1, 2, 3, 4, 5]
let numArray1 = numArray.sort() //返回一個新的數組且已經排好序,默認為升序
numArray.sortInPlace() //在原有數組上進行排序

9.冒泡法,簡單排序法

1.冒泡法

主要思想是每次進行相鄰元素之間的比較,將較大的數交換到右邊.單次循環結束后,最大的數被移到右邊去.依次循環,達到排序的目的

var numArray = [9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in 1..<numArray.count {
    for j in 0..<numArray.count - i {
        if numArray[j] > numArray[j + 1]{
            (numArray[j], numArray[j + 1]) = (numArray[j + 1], numArray[j]) //交換元素
        }
    }
}

冒泡法可進行優化

var numArray = [9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in 1..<numArray.count {
    var judge = false
    for j in 0..<numArray.count - i {
        if numArray[j] > numArray[j + 1]{
            (numArray[j], numArray[j + 1]) = (numArray[j + 1], numArray[j])
            judge = true
        }
    }
    if !judge { //當judge為false的時候,表示一次排序都沒有進行.意味著該數組的順序已經排好,不需要再進行排序
        break
    } 
}

2.簡易選擇排序

主要思想是每次選出最小的元素,記錄其下標,將最小的依次與最前面的元素調換

var numArray = [9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in 0..<numArray.count - 1 {
var index = i //記錄最小數下標,用于交換
for j in i + 1..<numArray.count {
    if numArray[index] > numArray[j]{
        index = j //刷新下標
        }
    }
(numArray[index], numArray[i]) = (numArray[i], numArray[index]) //交換元素
}

10.數組三大實用方法(閉包)

1.過濾

let array = [23, 37, 96, 55, 40, 92, 68, 88]
let newArray = array.filter{ (a: Int) -> Bool in
    return a > 50 // 過濾掉小于50的數字
}
let newArray1 = array.filter{a in a > 50} // 省略掉括號,return,參數類型
let newArray2 = array.filter{$0 > 50} //省略參數

2.映射

let array = [23, 37, 96, 55, 40, 92, 68, 88]
let newArray = array.map{$0 * $0}

3.縮減

let array = [23, 37, 96, 55, 40, 92, 68, 88]
let newArray = array.reduce(0, combine: +) //合并所以值,求和。0為初始值
let newArray = array.reduce(array[0]){$0 > $1 ? $0 : $1} // 輸出最大項,初始值為array[0]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • swift第一周學習總結 什么是swift語言 swift 語言是蘋果公司在2014年的WWDC大會上發布的全新的...
    青昀兄閱讀 182評論 0 1
  • [TOC] 要點總結 程序設計 變量和常量 運算符 分支結構 循環結構 數組 具體學習情況總結 第一天 Swift...
    Youth丶夏夏閱讀 972評論 0 5
  • [TOC] 初識Swift 第一次給我的四大印象 Swift是一種面向對象的計算機編繪語言 Swift不需要引入頭...
    落葉追風閱讀 318評論 0 6
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,854評論 0 6
  • 1.程序設計 在這個過程中,在Xcode這個開發軟件中,老師通過講解了幾個有趣的運用,比如:牛眼睛,跑人,擲骰子等...
    8d6d0daa678e閱讀 204評論 0 0