print(Int("12"))
print(Int("Hi"))
// Optional(12)
// nil
var x : Int? //옵셔널 정수형 변수 x 선언
var y : Int = 0
x = 10 // 주석처리하면?
print(x) // Optional(10)
print(x!) // forced unwrapping해서 10이 나옴
print(y)
// x = x+2 // 불가능 -> x = x!+2 로 변경해야함
// print(x)
// y = x // 불가능 -> y = x! 로 변경
// print(y)
주의 : if x!=nil 이라고 쓰면 안됨
var x : Int?
x = 10
if x != nil {
print(x!)
}
else {
print("nil")
}
var x1 : Int? //nil
if x1 != nil {
print(x1!)
}
else {
print("nil")
}
// 실행결과
10
nil
var x : Int?
x = 10 // if let x = x 라고 써도 됨
if let xx = x { //옵셔널 변수 x가 값(10)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
print(x, xx)
}
else {
print("nil")
}
var x1 : Int?
if let xx = x1 { //옵셔널 변수 x1이 값이 없어서 if문의 조건이 거짓이 되어 if문 실행하지 않고 else로 감
print(xx)
}
else {
print("nil")
}
// 실행결과
Optional(10) 10
nil
여러 옵셔널 변수를 한번에 언래핑하는 방법은 콤마 사용
var pet1: String?
var pet2: String?
pet1 = "cat"
pet2 = "dog"
if let firstPet = pet1, let secondPet = pet2 {
print(firstPet, secondPet)
} else {
print("nil")
}
// 실행결과 : cat dog
--------------------------------------------------------
var x : Int?
var y : Int?
x = 10
y = 20
if let xx = x, let yy = y {
print(xx,yy)
}
else {
print("nil")
}
// 실행결과 : 10 20
닫힌 범위 연산자(closed range operator)
반 열린 범위 연산자(half-open range operator)
One-Sided Ranges
let names = ["A", "B", "C", "D"]
for name in names[2...] { //[...2], [..<2] //과제: 실행 결과
print(name)
} // C
// D
var x: Any = "Hi"
print(x, type(of:x))
x = 10
print(x, type(of:x))
x = 3.5
print(x, type(of:x))
//type을 검사해서 사용
// 실행결과
Hi String
10 Int
3.5 Double
for _ in 1...5 {
print("안녕", terminator:" ")
}
for i in 1...5 {
print("\(i) 안녕")
}
// 실행결과
안녕 안녕 안녕 안녕 안녕 1 안녕
2 안녕
3 안녕
4 안녕
5 안녕
for i in 1..<10 {
if i > 5 break
// error: expected '{' after 'if' condition
print(i)
}
----------- 수정 후------------------
for i in 1..<10 {
if i > 5 { break } // 중괄호 추가
print(i)
}
var a = 1
var b = 2
var c = 3
var d = 4
if a < b && d > c {
print("yes")
}
if a < b, d > c {
print("yes")
}
// 실행결과
yes
yes
let weight = 90.0
let height = 180.0
let bmi = weight / (height*height*0.0001) // kg/m*m
var body = ""
if bmi >= 40 {
body = "3단계 비만"
} else if bmi >= 30 && bmi < 40 {
body = "2단계 비만"
} else if bmi >= 25 && bmi < 30 {
body = "1단계 비만"
} else if bmi >= 18.5 && bmi < 25 {
body = "정상"
} else {
body = "저체중"
}
print("BMI:\(bmi), 판정:\(body)")
// 실행결과 : BMI:27.777777777777775, 판정:1단계 비만
let weight = 90.0
let height = 180.0
let bmi = weight / (height*height*0.0001) // kg/m*m
var body = ""
switch bmi{
case 40...:
body = "3단계 비만"
case 30..<40:
body = "2단계 비만"
case 25..<30:
body = "1단계 비만"
case 18.5..<25:
body = "정상"
default:
body = "저체중"
}
print("BMI:\(bmi), 판정:\(body)")
// 실행결과 : BMI:27.777777777777775, 판정:1단계 비만
출처:iOS프로그래밍기초 (22-2학기)한성현교수님 강의 내용 변형 및 요약 3주차