Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
204 changes: 0 additions & 204 deletions 5l_ChukarkovKonstantin.playground/Contents.swift

This file was deleted.

45 changes: 0 additions & 45 deletions 6l_ChukarkovKonstantin.playground/Contents.swift

This file was deleted.

4 changes: 0 additions & 4 deletions 6l_ChukarkovKonstantin.playground/contents.xcplayground

This file was deleted.

73 changes: 73 additions & 0 deletions 7l_ChukarkovKonstantin.playground/Contents.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@

print("Проверка банковской карты.\n1) Заблокированна карта банком или нет.\n2) Хватает ли средств на балансе для покупки товара")

enum CardError: Error {
case smallBalance
case blockedAccount
}

struct product {
var price: Double
}

enum CardStatus {
case isBlocked
case isNotBlocked
}

class CardOpation {
var balance: Double = 0
var cardStatus = CardStatus.isNotBlocked

func buySomething(product: product) throws {
guard cardStatus == .isNotBlocked else {
throw CardError.blockedAccount
}
guard product.price < self.balance else {
throw CardError.smallBalance
}
balance = self.balance - product.price
}

func plusBalance (someMoney: Double) {
balance = self.balance + someMoney
}

func printBalance() {
print ("Баланс вашей карты \(balance) рублей")
}

func changeCardStatus(status: CardStatus){
switch status {
case .isBlocked: cardStatus = .isBlocked
case .isNotBlocked: cardStatus = .isNotBlocked
}
}

}

let operation = CardOpation()


operation.plusBalance(someMoney: 10000)
operation.printBalance()
operation.changeCardStatus(status: .isBlocked)


do {
try operation.buySomething(product: .init(price: 4500))
} catch CardError.smallBalance {
print("Недостаточно средств на карте")
} catch CardError.blockedAccount {
print("Ваша карта заблокирована")
}

operation.changeCardStatus(status: .isNotBlocked)

do {
try operation.buySomething(product: .init(price: 45500))
} catch CardError.smallBalance {
print("Недостаточно средств на карте")
} catch CardError.blockedAccount {
print("Ваша карта заблокирована")
}
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# swiftFirstLesson
# swiftFirstLesson
add 6-l