Итог и среднее значение
Часть раздела Основы путешествия по Swift на Coddy. Урок 81 из 86.
Задание
ЛегкоНа предыдущем уроке ты реализовал функцию «Просмотреть все расходы». Теперь реализуй функцию «Показать общую сумму и среднее значение» для пункта "3".
Измени код, чтобы обрабатывать пункт "3":
- Когда пользователь вводит
"3", проверь, пуст ли массивexpenses - Если массив пуст, выведи
No expenses to calculate. - Если в массиве есть расходы, вычисли и выведи:
- Общую сумму всех расходов в формате
Total: $X.X - Средний расход в формате
Average: $X.X
- Общую сумму всех расходов в формате
- Пункт
"4"по-прежнему должен выводитьComing soon... - Пункты
"1","2"и"5"должны продолжать работать как раньше
Подсказка: Используй reduce(0, +), чтобы вычислить общую сумму, а для вычисления среднего значения раздели её на Double(expenses.count).
Ожидаемое поведение:
- Если ввести
"3", когда расходов нет, выведиNo expenses to calculate. - Если ввести
"3", когда есть расходы, выведи общую сумму в одной строке, а среднее значение — в следующей
Пример взаимодействия:
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
3
No expenses to calculate.
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
20.0
Expense added!
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
30.0
Expense added!
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
3
Total: $50.0
Average: $25.0
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
5
Goodbye!Попробуйте сами
// Daily Expense Tracker - Menu Display
var expenses: [Double] = []
while true {
// TODO: Write your code below to print the menu options
// Each option should be on its own line with the format: "number. option text"
print("1. Add expense")
print("2. View all expenses")
print("3. Show total and average")
print("4. Clear all expenses")
print("5. Exit")
let choice = readLine()
if choice == "1" {
print("Enter expense amount:")
if let input = readLine(), let amount = Double(input) {
expenses.append(amount)
print("Expense added!")
}
} else if choice == "2" {
if expenses.isEmpty {
print("No expenses recorded.")
} else {
print("Your expenses:")
for expense in expenses {
print("- $\(expense)")
}
}
} else if choice == "3" {
print("Coming soon...")
} else if choice == "4" {
print("Coming soon...")
} else if choice == "5" {
print("Goodbye!")
break
} else {
print("Coming soon...")
}
}Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический ввод12Основы массивов
Объявление массиваДоступ к элементамИзменение массивовМетоды массивовПовторение — список продуктовПовторение — массив в обратном порядкеКортежи15Ежедневный учёт расходов
Обзор проектаВыход из программыПотренируйтесь самостоятельно: Песочница Swift