Total y promedio
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 81 de 86.
Desafío
FácilEn la lección anterior, implementaste la función "View all expenses". Ahora, implementa la función "Show total and average" para la opción "3".
Modifica tu código para manejar la opción "3":
- Cuando el usuario ingrese
"3", verifica si el arregloexpensesestá vacío - Si el arreglo está vacío, imprime
No expenses to calculate. - Si el arreglo tiene gastos, calcula y muestra:
- El total de todos los gastos, formateado como
Total: $X.X - El promedio de los gastos, formateado como
Average: $X.X
- El total de todos los gastos, formateado como
- La opción
"4"aún debe imprimirComing soon... - Las opciones
"1","2", y"5"deben seguir funcionando como antes
Consejo: Usa reduce(0, +) para calcular el total, y divide por Double(expenses.count) para el promedio.
Comportamiento esperado:
- Cuando se ingrese
"3"sin gastos, imprimeNo expenses to calculate. - Cuando se ingrese
"3"con gastos, imprime el total en una línea y el promedio en la siguiente línea
Ejemplo de interacción:
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!Pruébalo tú mismo
// 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...")
}
}Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica12Fundamentos de Arrays
Declarar un ArrayAcceder a elementosModificar ArraysMétodos de ArrayResumen - Lista de productosResumen - Array invertidoTuplas15Seguimiento de gastos diarios
Descripción general del proyectoSalir del programa