- for, if
let indeividualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
println(teamScore)
--dictionary에서 최대값 구하는 예제
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
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
println(largest)
-- 아래 두 구문은 완전히 동일한 구문이다.
var firstForLoop = 0
for i in 0..2 {
firstForLoop += i
}
firstForLoop
var secondForLoop = 0
for var i = 0; i < 3; ++i {
secondForLoop += 1
}
secondForLoop
- optional value
var optionString: String? = "Hello"
optionString == nil
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
- switch
case문을 빠져나오기 위해 명시적으로 break를 사용하지 않는다.
let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "Add some rainins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
let vegetableComment = "Is it a spicy \(x)?"
default:
let vegetableComment = "Everything tastes good in soup."
}
case문에 조건절이 포함될 수 있다.
let myPoint1 = (1, -1)
switch myPoint1 {
case let(x, y) where x == y:
println(1)
case let(x, y) where x == -y:
println(2)
case let(x, y):
println(3)
}
결과 : 2
tuples 기능을 사용할 수 있다. tuples는 두개 이상의 값을 한꺼번에 처리할 수 있는 자료구조
let myPoint = (1, 1)
switch myPoint {
case (0, 0):
println("원점에 있다")
case (_, 0): // '_'에는 어떤 숫자라도 올 수 있다. ex) (5, 0), (100, 0)
println("(\(myPoint.0), 0)은 X축에 있다.")
case (0, _):
println("(0, \(myPoint.1))은 Y축에 있다.")
case(-2...2, -2...2):
println("(\(myPoint.0), \(myPoint.1))은 사각형 안에 있다.")
default :
println("(\(myPoint.0), \(myPoint.1))은 사각형 밖에 있다.")
}
다중조건을 지정할 수 있다.
let myGrade1 = "C학점"
switch myGrade1 {
case "A학점", "B학점" :
println("장학금 대상자입니다. 축하합니다.")
case "C학점", "D학점" :
println("장학금 대상자가 아닙니다. 열심히 공부하세요")
default :
println("낙제입니다.")
}
'...'로 범위를 지정할 수 있다.
let myScore75 = 75
switch myScore75 {
case 85...100:
println("A")
case 75...84:
print("B")
default :
println("^^;")
}
- while, do
var n = 2
while n < 100 {
n = n * 2
}
println(n)
var m = 2
do {
m = m * 2
} while m < 100
println(m)
참고 : Apple Inc. ‘The Swift Programming Language.'
'Smart Device > Swift' 카테고리의 다른 글
Swift 함수 #3 - nested functions(중첩함수) (0) | 2014.06.09 |
---|---|
Swift 함수 #2 - 여러개의 반환값과 인수를 가지는 함수 (0) | 2014.06.09 |
Swift 함수 #1 (0) | 2014.06.07 |
Simple Values (0) | 2014.06.04 |
Hello, Swift (0) | 2014.06.04 |