일반적으로 배열, 딕셔너리는 값을 저장하고 print 할 때 무작위로 나온다.
let roomSpec = ["1번방" : 10000, "2번방" : 20000, "3번방" : 30000, "4번방" : 40000, "5번방" : 50000]
for (roomNumber, price) in roomSpec {
print("\(roomNumber) : \(price)원")
}
딕셔너리 특징상 value 값은 동일할 수 있으니, key 값을 기준으로 정렬을 해준다.
현재 key 값이 String 형태인데 Int 형으로 바꾸어 좀 더 쉽게 정렬하는 코드를 만들 수 있다.
(String 형으로 정렬하는 코드로 작업했는데, 계속 적용이 안되고 에러가 나서 포기함 ㅠ)
수정된 코드
let roomSpec = [1 : 10000, 2 : 20000, 3 : 30000, 4 : 40000, 5 : 50000] let sortedRoomSpec = roomSpec.keys.sorted() for roomNumber in sortedRoomSpec { if let price = roomSpec[roomNumber] { print("\(roomNumber)번방 : \(price)원") } }
roomSpec 딕셔너리는 [Int:Int] 형태이므로, <딕셔너리>.keys.sorted() 코드를 이용하여 정렬하였다.
100,000 ~ 500,000 사이 랜덤한 숫자를 추출해서 지갑에 넣어주는 코드를 짜는데, 1만원 단위로 지급을 해야하는 조건이 존재한다.
일단 랜덤 숫자를 뽑는 코드는 간단하다.
Int.random(in: 범위)
뽑는 숫자는 원단위로 Int 형으로 추출하였고,
해당 범위 안에서 조건식을 넣는 방법을 못찾아서 나는 10~50 사이의 값을 추출해서 10,000을 곱했다.
print("<랜덤 금액 받기>")
let money = Int.random(in: 10...50)
myWallet += (money * 10000)
print("랜덤 지급 금액 : \(money*10000)원")
print("현재 나의 잔고 : \(myWallet)원")
그리고 랜덤하게 뽑은 금액은 내 잔고에 지급되므로 랜덤 금액 받기를 누를때마다 누적되도록 작성했다.