Swift学习笔记笔记(三)Swift集合&控制转移&字符串

一、 实验目的:

1.掌握Swift集合
2.掌握Swift控制流

二、实验原理:

1.数组的定义
2.集合的定义
3.字典的定义
4.fallthrough的功能
5.forloop标签的功能
6.字符串的定义方式
7.字符串的遍历方法

三、实验步骤及内容:

1.数组

//数组的初始化1
var animalArray = [String]()
if animalArray.isEmpty {
print(”animalArray is empty!”)
}
animalArray.append(”tiger”)
animalArray.append(”lion”)
//数组的初始化2
var oneBitNumberArray : Array = [0,1,2,3,4,5,6,7,8,9]
var botanyArray1 : [String] = [“rosemary”,”parsley”,”sage”,”thyme”]
var botanyArray2 = [“rosemary”,”parsley”,”sage”,”thyme”]
print(”There are \(botanyArray1.count) kinds of botany.”)
//数组的初始化3
var twoBitNumberArray = [Int](repeating: 0, count: 6)
var threeBitNumberArray = [Int](repeating: 11, count: 3)
//数组的相加
var theAddedNumberArray = twoBitNumberArray + threeBitNumberArray
//数组的累加
animalArray += [“hawk”]
animalArray += [“sheep”,”horse”]
//数组的下标操作
var theFirstAnimal = animalArray[0]
animalArray[1] = “hen”
animalArray[2…4] = [“goat”,”rat”,”cock”,”rabbit”]
print(animalArray)
//数组插入元素
animalArray.insert(”snake”, at: 3)
//数组删除元素
animalArray.removeFirst()
print(animalArray)
animalArray.removeLast()
print(animalArray)
animalArray.remove(at: 2)
print(animalArray)
//数组的遍历
for animal in animalArray {
print(animal)
}
for (index,animal) in animalArray.enumerated() {
print(”No.\(index) animal is \(animal)”)
}
print(animalArray)
//数组片段
let myZoo = animalArray[1…2]
print(myZoo)
myZoo[1]
myZoo[2]
//myZoo[0]
//将数组片段转化成数组类型
let newZoo = Array(animalArray[1…2])
print(newZoo)
newZoo[0]
newZoo[1]
//判断数组是否包含指定元素
animalArray[1…3].contains(”hen”)
animalArray.contains(”hen”)
//数组交换元素位置
print(animalArray)
animalArray.swapAt(2, 3)
//数组排序
print(animalArray)
animalArray.sort()
//练习题1
var majorCompulsoryCourse = [String]()
majorCompulsoryCourse.append(”Data Structure”)
majorCompulsoryCourse.append(”Computer Organizagtion”)
majorCompulsoryCourse.append(”Computer Networks”)
var specializedOptionalCourse = [“iOS app development”, “Swift Programming”, “Artifical Intelligence”]
var generalKnowledgeCourse = [String](repeating: “Music”, count: 3)
generalKnowledgeCourse[1] = “Painting”
generalKnowledgeCourse[2] = “Literature”
var allBookedCourse = majorCompulsoryCourse + specializedOptionalCourse + generalKnowledgeCourse
print(allBookedCourse)
majorCompulsoryCourse[0] = “Discrete Mathematics”
specializedOptionalCourse.insert(”Experiment of Mobile Application Development”, at: 3)
generalKnowledgeCourse.remove(at: 1)
allBookedCourse = majorCompulsoryCourse + specializedOptionalCourse + generalKnowledgeCourse
for (index, course) in allBookedCourse.enumerated() {
print(”No.\(index) course is \(course)”)
}
let sliceOfAllBookedCourse = allBookedCourse[3…6]
var newArrayFromSlice = Array(sliceOfAllBookedCourse)
print(newArrayFromSlice)
newArrayFromSlice.swapAt(0, 3)
newArrayFromSlice.sort()
if newArrayFromSlice.contains(”Swift Programming”) {
print(”It contains course: Swift Prgramming”)
} else {
print(”No course: Swift Programming”)
}
if newArrayFromSlice.contains(”Swift”) {
print(”It contains course: Swift”)
} else {
print(”No course: Swift”)
}
在这里插入图片描述

2.集合

//集合的初始化1
var weatherOfSanya = Set()
weatherOfSanya = [“rainy”,”sunny”,”stormy”]
//集合的初始化2
var weatherOfBj : Set = [“dry”,”windy”,”frogy”,”sunny”]
//判断集合是否位空
if weatherOfSanya.isEmpty {
print(”The set of weather is empty!”)
} else {
print(”There are \(weatherOfSanya.count) kinds weather!”)
}
//集合插入元素
weatherOfSanya.insert(”cloudy”)
//集合删除元素
weatherOfSanya.remove(”stormy”)
weatherOfSanya.remove(”dry”)
//删除集合所有元素
//weatherOfSanya.removeAll()
//检索特定元素
if weatherOfSanya.contains(”sunny”) {
print(”Sanya is sunny sometimes.”)
}
//遍历集合
for weather in weatherOfSanya {
print(”\(weather)”)
}
//集合排序
print(”the result of unsorted : “)
for weather in weatherOfSanya {
print(”\(weather)”)
}
print(”the result of sorted : “)
for weather in weatherOfSanya.sorted() {
print(”\(weather)”)
}
//集合交集运算
weatherOfBj.intersection(weatherOfSanya)
//集合并集运算
weatherOfBj.union(weatherOfSanya)
//集合差集运算
weatherOfBj.subtract(weatherOfSanya)
//练习题2
var gradeOfTheory = Set()
if gradeOfTheory.isEmpty {
gradeOfTheory.insert(”Fail”)
gradeOfTheory.insert(”Pass”)
gradeOfTheory.insert(”Common”)
gradeOfTheory.insert(”Good”)
gradeOfTheory.insert(”Excellent”)
} else {
print(”Grade Set of Theory is not empty!”)
}
var gradeOfExperiment: Set = gradeOfTheory
gradeOfExperiment.remove(”Common”)
gradeOfExperiment.remove(”Good”)
gradeOfExperiment.remove(”Excellent”)
if gradeOfExperiment.contains(”Fail”) && gradeOfExperiment.contains(”Pass”) {
print(”Grade Set of Experiment has two levels: Fail and Pass.”)
} else {
print(”Grade Set of Experiment is lack of Fail or Pass level!”)
}
print(”All grades in Theory are: “)
for grade in gradeOfTheory {
print(”\(grade) “)
}
print(”All grades in Experiment are: “)
for grade in gradeOfExperiment {
print(”\(grade) “)
}
gradeOfTheory.sorted()
print(”All SORTED grades in Theory are: “)
for grade in gradeOfTheory {
print(”\(grade) “)
}
gradeOfExperiment.sorted()
print(”All SORTED grades in Experiment are: “)
for grade in gradeOfExperiment {
print(”\(grade) “)
}
print(”Intersection results are: “)
for grade in gradeOfTheory.intersection(gradeOfExperiment) {
print(”\(grade)”)
}
print(”Union results are: “)
for grade in gradeOfTheory.union(gradeOfExperiment) {
print(”\(grade)”)
}
print(”Subtract results are: “)
for grade in gradeOfTheory.subtracting(gradeOfExperiment) {
print(”\(grade)”)
}
在这里插入图片描述

3.字典

//声明字典
var ascIIDictChar0 = Dictionary<Int, Character>()
var ascIIDictNum0 = [Int:Int]()
//初始化字典
var ascIIDictChar = [97:”a”,98:”b”,99:”c”,100:”d”,101:”e”,102:”f”]
var ascIIDictNum = [32:0,33:1,34:2,35:3,36:4,37:5,38:6]
//设置字典的容量
ascIIDictNum.reserveCapacity(10)
//修改字典元素值方法1
ascIIDictChar[103] = “g”//添加元素
print(ascIIDictChar)
ascIIDictChar[97] = “A”
//修改字典元素值方法2
print(ascIIDictChar)
if let originValue = ascIIDictChar.updateValue(”a”, forKey: 97) {
print(”The origin value is \(originValue)”)
}
print(ascIIDictChar)
//删除字典元素值方法1
ascIIDictChar[97] = nil
print(ascIIDictChar)
//删除字典元素值方法2
if let removedValue = ascIIDictChar.removeValue(forKey: 98){
print(”Value \(removedValue) is removed.”)
}
//遍历字典键值对
for (ascIICode,char) in ascIIDictChar {
print(”ascII code \(ascIICode) express char \(char) “)
}
//便利字典键集合
for ascIICode in ascIIDictChar.keys {
print(”keys:\(ascIICode);”)
}
//便利字典值集合
for char in ascIIDictChar.values {
print(”chars:\(char);”)
}
//字典keys属性
let ascIICodeArray = Array(ascIIDictChar.keys)
//字典values属性
let charArray = Array(ascIIDictChar.values)
//练习题3
var schoolOfUniversity = [Int:String]()
schoolOfUniversity = [1:”Material”, 2:”Electronics”, 3: “Astronics”, 4:”Dynamics”, 5:”Aircraft”, 6:”Computer”]
schoolOfUniversity[3] = “revisedSchool”
schoolOfUniversity.updateValue(”updatedSchool”, forKey: 4)
print(schoolOfUniversity)
schoolOfUniversity[7] = “Mechanism”
schoolOfUniversity[8] = “Management”
print(schoolOfUniversity)
print(”Elements in Dictionary are as below:”)
for (code, schoolName) in schoolOfUniversity {
print(”Code:\(code)—School Name:\(schoolName)”)
}
var codeForSchool = Array(schoolOfUniversity.keys)
var schoolName = Array(schoolOfUniversity.values)
print(”All codes are: “)
for code in codeForSchool {
print(”\(code )”)
}
print(”All school name are:”)
for name in schoolName {
print(”\(name) “)
}
在这里插入图片描述

4.fallthrough的功能

//fallthrough的功能
var index = 10
switch index {
case 100 :
print( “index 的值为 100”)
fallthrough
case 10,15 :
print( “index 的值为 10 或 15”)
fallthrough
case 5 :
print( “index 的值为 5”)
default :
print( “默认 case”)
}
//fallthrough的使用
var score=70
var member=true
switch(score){
case 0…<60:
print(“遗憾未中奖!”)
if(membertrue){
fallthrough
}
case 9999:print(“会员额外赠送金币1万!”)
case 60…70:
print(“三等奖!”)
if(member
true){
fallthrough
}
case 9999:print(“会员额外赠送金币10万!”)
default:print(0)
}
在这里插入图片描述

5. forloop标签的功能

//forloop的功能
var i,j:Int
var s:Int

forloop:for i in 1...10 {
    for j in 1...10 {
        s = i*j
        print("i*j=\(s)")
        if (s>50) {
            print("i*j>50,退出外循环");
            break forloop
        }
    }

}
//forloop的使用
loop1:for i in 1…10{
loop2:for j in 1…10{
print(“i=(i),j=(j)”)
if(ji){
break loop2
}
}
if(i
5){
break loop1
}
}

6. 字符串的定义方式

7.字符串的定义

//字符的定义
let characterAlphabet:Character = “a”
let characterNumber:Character = “9”
let characterOperator:Character = “*”
//多行文本的定义
let multilinesString = “““
Do the most simple people,
the most happy way:
We often heart will feel tired,just want to too much;
We always say life trival,is actually I don’t understand taste;
Our business is busy , often is not satisfied;
We are always competitive , is actually his vanity is too strong.
Don’t compare , heart is coll , life is so simple.
“““
//字符串变量定义
var emptyStr = ““
var anotherEmptyStr = String()
if emptyStr.isEmpty {
print(”This String is empty”)
}
var str1 = “hello world”
var str2 = str1
str2 = “helllo China”
print(str1)
//练习题7
var schoolName = ““
var universityName = String()
if schoolName.isEmpty {
print(”School Name is empty!”)
} else {
print(”My School is \(schoolName)”)
}
universityName = “Beijing University of Aeronautic and Astronautic”
if universityName.isEmpty {
print(”University Name is empty!”)
} else {
print(”My University is \(universityName)”)
}
var myUniversity = ““
myUniversity = universityName
print(”My university is \(myUniversity), University Name is \(universityName)”)
myUniversity = “Tsinghua University”
print(”My university is \(myUniversity), University Name is \(universityName)”)
在这里插入图片描述

8.字符串操作

let theString = “It’s my world!”
//字符串大写
let upString=theString.uppercased()
print(”the uppercaseString is \(upString)”)
//字符串小写
let lowString=theString.lowercased()
print(”the lowercasesSteing is \(lowString)”)
//字符串索引
let courseTitle = “Swift”
//获取字符串第一个字符的索引与值
let firstIndex = courseTitle.startIndex
let firstCharacter = courseTitle[firstIndex]
//获取字符串最后一个字符的索引与值
let endIndex = courseTitle.index(before: courseTitle.endIndex)
let endCharacter = courseTitle[endIndex]
//获取中间位置字符的索引与值
let middleIndex = courseTitle.index(courseTitle.startIndex, offsetBy: 2)
let middleCharacter = courseTitle[middleIndex]
//字符串的子串
let studentName = “luo liang”
let spaceIndex = studentName.index(of: “ “)//xcode10.2中才有firstIndex(of:”“)
let firstName = studentName[studentName.startIndex …< spaceIndex!]
let firstName2 = studentName[…<spaceIndex!]
let surname = studentName[studentName.index(after: spaceIndex!)…studentName.index(before: studentName.endIndex)]
let bookInfo1 = “History book: world history”
//判断字符串是否含有前缀
if bookInfo1.hasPrefix(”History book”) {
print(”book1 is a history book.”)
}
let bookInfo2 = “History book: China history”
//判断字符串时候含有后缀
if bookInfo2.hasSuffix(”history”) {
print(”book2 is a history book.”)
}
//练习题8
var myHobbies = “Music Basketball Philosophy”
for char in myHobbies {
print(char)
}
print(”The number of characters in myHobbies is \(myHobbies.count)”)
let str1 = “My hobbies”, str2 = “is”
var info = str1 + str2 + myHobbies
print(info)
let space = “ “
info = str1 + space + str2 + space + myHobbies
print(info)
print(info.uppercased())
print(info.lowercased())
var firstIndex = myHobbies.startIndex
let firstChar = myHobbies[firstIndex]
let lastIndex = myHobbies.index(before: myHobbies.endIndex)
let lastChar = myHobbies[lastIndex]
var middleIndex = myHobbies.index(firstIndex, offsetBy: 6)
var middleChar = myHobbies[middleIndex]
middleIndex = myHobbies.index(lastIndex, offsetBy: -20)
middleChar = myHobbies[middleIndex]
var spaceIndex = myHobbies.index(of: “ “)!
let hobby1st = myHobbies[firstIndex…<spaceIndex]
firstIndex = myHobbies.index(after: spaceIndex)
let restOfMyHobbies = myHobbies[firstIndex…]
spaceIndex = restOfMyHobbies.index(of: “ “)!
let hobby2nd = restOfMyHobbies[restOfMyHobbies.startIndex…<spaceIndex]
firstIndex = restOfMyHobbies.index(after: spaceIndex)
let hobby3rd = restOfMyHobbies[firstIndex…]
print(”The first hobby is \(hobby1st)”)
print(”The second hobby is \(hobby2nd)”)
print(”The third hobby is \(hobby3rd)”)
//compare hobby
if hobby1st == hobby2nd {
print(”The two hobbies are equal.”)
}
if hobby1st.hasPrefix(”musi”) {
print(”The first hobby: \(hobby1st) has prefix: musi”)
} else {
print(”The first hobby: \(hobby1st) hasn’t prefix: musi”)
}
if hobby2nd.hasSuffix(”sophy”) {
print(”The first hobby: \(hobby2nd) has suffix: sophy”)
} else {
print(”The first hobby: \(hobby2nd) has suffix: sophy”)
}
在这里插入图片描述

四、实验结果与分析:

continue
告诉循环停止正在做的事情并且再次从头开始循环的下一次遍历.他是说"我不再继续当前的循环遍历了"而不是离开整个的循环.
break
会立即结束整个控制流语句.当你想要提前结束switch或者循环语句或者其他情况的可以在switch语句或者循环语句中使用break语句.
当在循环语句中使用时,break会立即结束循环的执行,并且转移控制到循环结束花括号(})后的第一行代码上.当前遍历循环里的其他代码都不会执行,并且余下的遍历循环也不会开始了.
当在switch语句里使用时,break导致switch语句立即结束它的执行,并且转移控制到switch语句结束花括号(})之后的第一行代码上.
fallthrough
如果你需要C或者OC风格的贯穿行为,你可以选择在switch每一个case末尾使用fallthrough关键字.
可以使用语句标签来给循环语句或者条件语句做标记.在一个条件语句中,你可以使用一个语句标签配合break语句来结束被标记的语句.在循环语句中,你可以使用语句标签来配合break后者continue语句来结束或者继续执行被标记的语句.

五、实验总结:

本次课程的学习,我主要学习了Swift集合&控制转移&字符串让我对swift编程语言有了一个基本的认识。在罗老师的带领学习下,我越来越喜欢这IOS门课程,希望在以后的学习中,我可以越来越主动去学习了解更多的知识。本次实验,我主要的学习情况总结如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

出色的你csdw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值