Итоговая сумма и среднее значение
Часть раздела Основы путешествия по 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Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод12Основы массивов
Объявление массиваДоступ к элементамИзменение массивовМетоды массивовПовторение — Список товаровПовторение — Перевернутый массивКортежи15Трекер ежедневных расходов
Обзор проектаВыход из программы