실습을 하기 전, 아래의 글을 읽고 시작하면 좋다.
오늘 네가지의 과제를 수행하였다.
첫번째 문제.
첫번째 문제는 어려울 것이 없었다. 데이터 타입을 선언하고 내가 임의로 값을 넣으면 된다.
var age: Int = 27
var interestRate: Float = 0.27
var balcance: Double = 20_000_000
var isLoggedIn: Bool = true
var userName: String = "Jay"
var firstLetter: Character = "A"
var anyValue: Any = 99.78
끝!
두번째 문제.
let mission2: Float = Float(age) + interestRate
print("result = \(mission2)")
하나의 변수를 선언하고 데이터 타입을 Float로 선언해주었다.
그리고 첫번째 문제에서 선언한 변수 age는 Int 타입이기 때문에 Float로 타입 변환을 해주고, 두 변수를 더해주었다.
그리고 프린트에서 변수를 출력할때는 위와 같이 출력하면 된다.
변수를 출력하는 방법을 몰랐어서
print(mission2)
요런식으로 코드를 짰었는데 당연히 될리가 없다 ㅋㅋㅋㅋㅋㅋㅋ
이때 문자열보간이라는 문법을 사용해야한다.
문자열 보간은 아래의 글을 참고하자. (오늘 왜 \( )를 사용하여 출력하는지를 공부하다가 배웠음ㅋㅋ)
세번째 문제.
튜플을 사용해야 하는 문제이다.
튜플이 무엇인지는 위에 설명이 있지만, 간단하게 말하자면, 여러개 값을 하나로 묶어서 편리하게 사용하는 것이라고 이해하면 좋다.
let testA: (Int, Int) = (6, 9)
let plus = testA.0 + testA.1
print("result = \(plus)")
내가 작성한 답을 풀이해보자면,
TestA라는 변수를 만들고, 튜플을 사용해서 그 안에 6과 9를 넣었다.
그리고 항상 프로그래밍에서는 숫자는 0부터 시작한다.
저기에 있는 값을 호출하기위해, testA.0, testA.1을 호출하고 더해주었다.
각각 6과 9를 의미한다.
그리고 마지막은 오늘 배운 문자열보간을 사용해서~~~~~ 출력해주면~~~~~~
result = 15라는 값이 나온다!
네번째 문제.
네번째 문제가 가장 어려웠다.
첫번째 조건인 anyValue에 숫자 값을 대입하는 것 까지는 쉬웠다.
(anyValue는 이미 첫번째 문제에서 선언되어 있다.)
anyValue = 2024 // 첫번째 조건
if let intValue = anyValue as? Int {
print("\(intValue)")
} else {
print("???")
}
4번 문제에서 핵심 키는 as? < 이 코드이다.
일명 타입 캐스팅이다.
as?는 옵셔널을 반환하는데, 성공하면 옵셔널 값을 반환. 실패하면 Nil을 반환한다.
반대로 as!는 강제로 캐스팅한다. 당연히 실패할 경우에는 에러가 발생한다.
즉 anyValue가 Int인 경우에는 그 값을 출력하고,
아닌 경우에는 "???"을 출력하는 코드이다.
문제를 풀어보면서, 두번째 문제같은 경우에는 문자열 보간을 몰라서 해멨었고, 세번째 문제는 튜플을 사용하는 법을 몰라서 헤맸었다.
결과적으로 두번 다 정답을 추론하고 나니, 이제는 확실히 알고 넘어갈 수 있다는 것을 느꼈다.
역시 중요한건 직접 코딩하며 체득하는 것이 답이다.
네번째 문제는 if문을 써야한다는 사실조차 감을 잡지 못했었다..
답지를 보고 역으로 풀이하며 겨우 이해했다.
그 과정에서 타입 캐스팅도 배우게 되었다.
갈길이 멀다...
열심히 달려보자!!
'개발일지' 카테고리의 다른 글
기초 문법 복습 - String과 Character (0) | 2024.10.09 |
---|---|
운동 관리 시스템을 만들어보자! (function) (2) | 2024.09.30 |
은행 계좌 관리 시스템을 구축해보자!(willSet, didSet) (2) | 2024.09.26 |
직사각형의 넓이와 둘레를 계산해보자. (0) | 2024.09.26 |
성적 관리 시스템 만들기 (0) | 2024.09.25 |
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.