//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
let individualScores = [75, 43, 103, 87, 12];
var teamScore = 0;
for score in individualScores {
// if 里的条件判断 不用加()
if score > 50{
teamScore += 3;
} else{
teamScore += 1;
}
}
print(teamScore);
//? 可选值 可为nil
//你可以一起使用 if 和 let 来处理值缺失的情况。这些值可由可选值来代表。一个可选的值是一个具体的值或者 是 nil 以表示值缺失。在类型后面加一个问号来标记这个变量的值是可选的。
var optionalString : String? = "Hello";
print(optionalString == nil)
var optionalName:String? = nil;
var greeting = "Hello";
if let name = optionalName {
greeting = "Hello, (name)";
} else if(optionalName == nil){
greeting = "bye"
}
//?? 默认值
//如果变量的可选值是 nil ,条件会判断为 false ,大括号中的代码会被跳过。如果不是 nil ,会将值赋给 let 后 面的常量,这样代码块中就可以使用这个值了。
//另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值。如果可选值缺失的话,可以使用默认值来代 替。
let nickName : String? = nil;
let fullName : String = "John Appleseed";
let informalGreetin = "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("Everyting tastes good in soup");
}
let interestingNumbers = [
"Prime":[2, 3, 5, 7, 11, 13],
"Fibonacci":[1, 1, 2, 3, 5, 8],
"Square":[1, 4, 9, 16, 25],
];
var largest = 0;
var largestKind : String? = nil;
//你可以使用 for-in 来遍历字典,需要两个变量来表示每个键值对。字典是一个无序的集合,所以他们的键和值以 任意顺序迭代结束。
for (kind, numbers) in interestingNumbers {
for number in numbers{
if number > largest {
largest = number;
largestKind = kind;
}
}
}
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)
var secondForLoop = 0;
for var i = 0; i < 4; ++i {
secondForLoop += i;
}
print(secondForLoop);