/*
if、for-in语句的结合使用
*/
let array = [85,52,52,5266,52363,63330,8602,8222]
var numbers1 = [Any]()
var numbers2 = [Any]()
var number = 0
for num in array {
if num > 100{
numbers1.append(num)
number += 3
}else{
numbers2.append(num)
number -= 1
}
}
print("numbers1:\(numbers1),numbers2:\(numbers2),number:\(number)")
/*
if语句的使用
*/
let optionalString: String? = "Hello"
/*
在 if 语句中,条件必须是一个布尔表达式
*/
print(optionalString != nil)
print(optionalString == nil)
/*
可以一起使用 if 和 let 来处理值缺失的情况
如果变量的可选值是 ,条件会判断为 ,大括号中的代码会被跳过。如果不是 ,会将值解包并赋给 后面的常量,这样代码块中就可以使用这个值了
*/
let optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
//当optionalName的值不为nil的话,会执行这个代码块
greeting = "Hello, \(name)"
}
else{
greeting = "Hello"
}
print(greeting)
/*
另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值
*/
let nickName : String? = nil
let fullName :String = "John Appleseed"
//当nickName的值为nil的时候,会取fullName的值
let string = "Hi \(nickName ?? fullName)"
print(string)
/*
switch语句 支持任意类型的数据以及各种比较操作 跟3.0不一样,4.0必须加上break
*/
let title = "我在学习swift"
switch title {
case "123":
let string = "swift是一门很棒的编程语言"
print("\(title),\(string)")
break
case let x where x.hasSuffix("f")://let将匹配等式的值赋给常量 x 后缀
print("\(x)")
break
case let x where x.hasPrefix("我")://let将匹配等式的值赋给常量 x 前缀
print("\(x)")
break
default:
break
}
}
/*
for-in 来遍历
*/
let interestingNumbers = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25],
]
var largest = [Any]()
//需要两个变量来表示每个键值对。字典是一个无序的集合,所以他们的键和值以 任意顺序迭代结束。
for (kind , numbers) in interestingNumbers {
for number in numbers{
largest.append(number)
}
print(kind)
}
print("largest:\(largest)")
/*
while 来重复运行一段代码直到不满足条件
*/
var n = 2
while n < 100 {
n = n * 2
print(n)
}
}
/*
repeat-while语句
循环条件也可以在结尾,保证能至少循环一次
*/
var m = 2
repeat {
m=m * 2
} while m < 100
print(m)
/*
使用 ..< 创建的范围不包含上界,如果想包含的话需要使用 ...
*/
var total = 0
for i in 0..<4 {
total += i
print(total)
}
网友评论