Menu
Coddy logo textTech

Total And Average

Part of the Fundamentals section of Coddy's Kotlin journey. Lesson 88 of 93.

challenge icon

Challenge

Medium

In the previous lesson, you implemented the "View All Expenses" functionality. Now, implement the "Total and Average" functionality for option 3.

Modify your program to handle option 3:

  • If the expenses list is empty, print No expenses recorded.
  • If there are expenses, calculate and print:
    • Total: $X where X is the sum of all expenses
    • Average: $Y where Y is the average of all expenses

All other options should continue working as before:

  • Option 1: Add expense
  • Option 2: View all expenses
  • Option 5: Print Goodbye! and exit
  • Option 4 or invalid: Print Invalid option

Input format:

Menu choices and expense amounts as strings.

Output format:

The menu, followed by the appropriate response for each action.

Example:

If the inputs are 3, 1, 20.0, 1, 30.0, 1, 10.0, 3, and 5, the output should be:

--- 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!

Try it yourself

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")
        }
    }
}

All lessons in Fundamentals

Practice on your own: Kotlin playground