var width = 10
var height = 5
var area: Int {
get {
guard width > 0 && height > 0 else {
return 0
}
return width * height
}
}
var perimeter: Int {
get {
guard width > 0 && height > 0 else {
return 0
}
return (width + height) * 2
}
}
print("Area: \(area)")
print("Perimeter: \(perimeter)")
추가)
width랑 height는 타입추정을 통해 Int로 저장된다.
Double로 정의해서 연산 프로퍼티도 Double을 처리하도록 적으면 소수점도 함께 계산할 수 있을듯..
var width: Double = 10.0
var height: Double = 5.0
var area: Double {
get {
guard width > 0 && height > 0 else {
return 0
}
return width * height
}
}
var perimeter: Double {
get {
guard width > 0 && height > 0 else {
return 0
}
return (width + height) * 2
}
}
print("Area: \(area)")
print("Perimeter: \(perimeter)")
돌려보니 잘 된다.
AND 연산자 (&&
) : 두 조건이 모두 참일 때만 참
let a = 5
let b = 10
if a > 0 && b > 0 {
print("Both a and b are greater than 0")
} else {
print("One or both of the numbers are 0 or less")
}
OR 연산자 (||
) : 두 조건 중 하나만 참이면 참
let a = -1
let b = 10
if a > 0 || b > 0 {
print("At least one of a or b is greater than 0")
} else {
print("Both a and b are 0 or less")
}
NOT 연산자 (!
) : 조건을 반대로 만듦
let a = true
if !a {
print("a is false")
} else {
print("a is true")
}
XOR 연산자 (배타적 논리합, !=
) : 두 조건이 다를 때 참
let a = true
let b = false
if a != b {
print("a and b are different")
} else {
print("a and b are the same")
}
// 논리 연산자 결합 방식
let a = 10
let b = 20
let c = -5
if (a > 0 && b > 0) || c > 0 {
print("Either a and b are both positive, or c is positive")
} else {
print("Neither a and b are both positive, nor is c positive")
}