두 개의 데이터가 동시에 필요할 때. (ex. 좌표) 관계가 있는 data
let coordinates = (4, 4) //type : (Int, Int)
let x = coordinates.0
let y = coordinates.1
let coordinatesNamed = (x:4, y:3) // 명시적 표현
let x2 = coordinatesNamed.x
let y2 = coordinatesNamed.y
let (x3, y3) = coordnatesNamed
코드의 흐름을 제어
let name1 = "Jin"
let name2 = "Jason"
let isSame = name1==name2 // false
if isSame{
print("같다")
} else {
print("다르다")
}
let isMale = true
let jasonAndMale = isJason && isMale
let jasonOrMale = isJason || isMale
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight is equal to 90
while 조건 {
code
}
var i=0
while i<10 {
print(i)
i=i+1
}
i=0
repeat {
print(i)
i=i+1
} while i<10
while은 조건 > 코드 수행 > 조건 > 코드 수행 ...
repeat while은 코드 수행 > 조건 > 코드 수행 > 조건 ...
let closedRange = 0...10 //0부터 10까지
let halfclosedRange = 0..<10 //0부터 9까지
var sum =0
for i in closedRange {
print("\(i)")
sum+=i
}
print("\(sum)")
import Foundation
import UIKit
let closedRange = 0...10
var sinValue:CGFloat = 0
for i in closedRange {
sinValue = sin(CGFloat.pi/4 * CGFloat(i))
}
import UIKit
let closedRange = 0...10
for i in closedRange {
if i%2==0 {
continue
}
print(i)
}
를 where를 사용하면
for i in closedRange where i%2 != 0 {
print(i)
}
for i in closedRange {
for j in closedRange {
print("\(i)*\(j) = \(i*j)")
}
}
let num=10
switch num {
case 0:
print("0이다")
case 10:
print("10이지롱")
default:
print("나머지지롱")
}
//참고로
case 1...9:
print("이런식으로도 가능하지롱")
let pet = "bird"
switch pet{
case "dog", "cat" :
print("집동물")
default:
print("몰라")
}
let num=20
switch num {
case _ where num%2 == 0:
print("짝수")
default:
print("홀수")
}
import UIKit
let coordinate = (x:10, y:10)
switch coordinate {
case(0,0) :
print("원점")
case(_, 0):
print("x축")
case(0,_):
print("y축")
default:
print("어딘가")
}
를 다르게 표현하면
switch coordinate {
case (let x, 0) :
print("x축, x : \(x)")
case (0, let y):
print("y축, y : \(y)")
case (let x, let y) where x==y :
print("x랑 y랑 같음 \(x), \(y)")
case (let x, let y):
print("좌표어딘가")
}