Swift2.2 学习笔记(二) ___控制流

本文详细介绍了控制流中的if、switch语句,循环结构如for、while等,以及如何处理可选值变量,包括使用if与let、optional类型与??运算符的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * 控制流 (Control Flow)
 * 使用 if 和 switch 来进行条件操作,使用for-in、for、while 和 do-while 来进行循环。
   包裹条件和循环变量括号可以省略,但是语句体的大括号是必须的。
*
*/
let individualScores = [75,43,103,87,12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}

print(teamScore) //11

/*
 * 在if语句中,条件必须是一个布尔表达式,像 if score{...}是错误的
 * 可以一起使用if和let来处理缺失的情况。有些变量的值是可选的。一个可选的值可能是一个具体的值或者是nil,表示缺失。
 * 在类型后面加一个标记(?)问号,来标记这个变量是可选的
*/
var optionalString: String? = "Hello"
print(optionalString == nil)

var optionalName:String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
    // 如果变量的可选值是nil,条件会判断为false,大括号中的代码会被跳过。不是nil,会将值赋给let后面的常量。
}

// 使用 ?? , 如果可选值缺失,缺失值将被替代
let nickName :String? = nil
let fullName:String = "John Appleseed"
let infomalGreeting = "Hi \(nickName ?? fullName)"

/*
 * Switch支持任意类型的数据以及各种比较操作 –– 不仅仅是整数以及测试相等。
 *
*/
let vegetable = "red pepper"
switch vegetable {
    case "celery":
    print("Add some raisins and make ants on a log.")
    case "cucumber","watercress":
    print("That would make a good tea sandwich.")
    case let x where x.hasSuffix("pepper"):
    print("Is it a spicy \(x)?")
    default:
    print("Everying tastes good in soup.")

}

/*
 * 运行switch中匹配到的句子之后,程序会推出switch语句,并不会继续向下运行,所以不需要哦在卖个橘子结尾写break。
 * 可以使用for-in来遍历字典,需要两个变量来表示没个键值对。
***/
let interestingNumbers = [
    
    "Prime": [2,3,5,7,11,13],
    "Fibonacci":[1,1,2,3,5,8],
    "Squre":[1,4,9,16,25],
    
]

var largest = 0
for (kind,numbers) in interestingNumbers {
    
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
    
}

print(largest)

/*
 * 使用while来重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾。
 **/
var n = 2
while n < 100 {
    n = n * 2
}
print(n)

var m = 2
repeat {
 m = m * 2
} while m < 100
print(m)

/*
 * 在循环中使用..< 来表示范围
*/

var firstForLoop = 0
for i in 0..<4 { // 如果想包含使用 ...
    firstForLoop += i
}

print(firstForLoop)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值