//每天一句Hello,Swift!嘻嘻
print("Hello, Swift!")
//使用 if和 switch判断条件,使用 for-in、 for、 while和 do-while处理循环。条件和循环变量的括号可以省略,语句体的大括号是必须的。
let individualScores = [75,43,103,87,12]
var teamScore = 0
for score inindividualScores{
if score > 50{
teamScore += 3
}else{
teamScore += 1
}
print(score)
}
print(teamScore)
//在 if语句中,条件必须是一个布尔表达式 ——这意味着像 if score { ... }这样的代码将报错,而不会隐形地与 0 做对比。
//你可以一起使用 if和 let来处理条件值缺失的情况。有些变量的值是可选的。一个可选的值如果是一个具体的值或者是 nil,那表明这个值缺失。在类型后面加一个 ?来标记这个变量的值是可选的。
//var optionalString:String? = "Hello"
//optionalString == nil
var optionalName: String? = "Kevin Swift"
var greeting = "Hello!"
if let name =optionalName {
greeting = "Hello,\(name)"
}
print(greeting)
//如果变量的可选值是 nil,条件会判断为 false,并且大括号中的代码会被跳过。如果不是nil,会将值赋给let后面的常量,这样代码块中就可以使用这个值了。
//使用switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。
//找到匹配项之后,执行完相应的代码会自动退出switch,不会再向下执行,所以不需要每句都写break
let vegetable = "red pepper"
var vegetableComment : String
switch vegetable
{
case "celery":
vegetableComment ="Add some raisins and make ants a log."
case "cucumber","watercress":
vegetableComment ="That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
vegetableComment ="Is it a spicy\(x)?"
default:
vegetableComment ="Everything tastes good in soup."
}
print(vegetableComment)
//使用 for-in遍历字典,需要两个变量来表示键和值
let funnyNumbers = [
"Prime":[2,3,5,7,11,13],"Fibonacci":[1,1,2,3,5,8],"Square":[1,4,9,16,25],
]
var largest = 0
for (kind,numbers) in funnyNumbers{
for number in numbers
{
if number > largest
{
largest = number
}
}
}
print("这个词典里面最大的是"+String(largest))
//使用 while来重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾。
var n = 2
while n < 100 {
n = n*2
}
print(n)
var m = 3
//这里好像最新版本的不能用 do while了,换成repeat while ,bullshit!
repeat{
m = m *2
}while m < 100
print(m)
//你可以在循环中使用 ..来表示范围,也可以使用传统的写法,两者是等价的:
var firstForLoop = 0
//请注意这里是三个英文点。。。,坑爹的教程只写了两个英文点,看的不是最新版,这个教程有点坑啊,两个点和三个点好像还有区别于范围有待考证
for i in 0...3{
firstForLoop += i
}
print("firstForLoop:" +String(firstForLoop))
var secondForLoop = 0
for var i =0; i <3;++i
{
secondForLoop +=1
}
print("secondForLoop:" +String(secondForLoop))