Totale e media
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 88 di 93.
Sfida
MedioNella lezione precedente, hai implementato la funzionalità "View All Expenses". Ora implementa la funzionalità "Total and Average" per l'opzione 3.
Modifica il programma per gestire l'opzione 3:
- Se la lista
expensesè vuota, stampaNo expenses recorded. - Se ci sono spese, calcola e stampa:
Total: $Xdove X è la somma di tutte le speseAverage: $Ydove Y è la media di tutte le spese
Tutte le altre opzioni devono continuare a funzionare come prima:
- Opzione
1: Aggiungi una spesa - Opzione
2: Visualizza tutte le spese - Opzione
5: StampaGoodbye!ed esci - Opzione
4o non valida: StampaInvalid option
Formato di input:
Scelte del menu e importi delle spese come stringhe.
Formato di output:
Il menu, seguito dalla risposta appropriata per ogni azione.
Esempio:
Se gli input sono 3, 1, 20.0, 1, 30.0, 1, 10.0, 3 e 5, l'output dovrebbe essere:
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
No expenses recorded.
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Expense added!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Expense added!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Expense added!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Total: $60.0
Average: $20.0
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Goodbye!Provalo tu
fun main() {
val expenses = mutableListOf<Double>()
while (true) {
println("--- Expense Tracker ---")
println("1. Add Expense")
println("2. View All Expenses")
println("3. Total and Average")
println("4. Clear All")
println("5. Exit")
println("Choose an option:")
val choice = readLine()
if (choice == "1") {
println("Enter expense amount:")
val amount = readLine()!!.toDouble()
expenses.add(amount)
println("Expense added!")
} else if (choice == "2") {
if (expenses.isEmpty()) {
println("No expenses recorded.")
} else {
println("Your expenses:")
for (expense in expenses) {
println("- \$$expense")
}
}
} else if (choice == "5") {
println("Goodbye!")
break
} else {
println("Invalid option")
}
}
}Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamico12Nozioni di base sulle liste
List vs MutableListAccesso agli elementiModificare le listeMetodi delle listePair e TripleRipasso - Lista dei prodottiRipasso - Lista invertita15Gestore delle spese giornaliere
Panoramica del progettoEsci dal programmaEsercitati da solo: Playground Kotlin