📖 Scenario: You are building a simple Kotlin program to handle a list of exam scores for students. Sometimes, you want to pass multiple scores at once to calculate their average.
🎯 Goal: Create a Kotlin function that uses vararg parameters to accept multiple exam scores and calculate their average.
📋 What You'll Learn
Create a function named averageScore that accepts multiple Int scores using vararg.
Inside the function, calculate the average of all scores passed.
Call the function with exactly these scores: 70, 85, 90, 75.
Print the average score as a Double.
💡 Why This Matters
🌍 Real World
Vararg parameters let you write flexible functions that can take any number of inputs, like scores, names, or prices, without needing to create arrays manually.
💼 Career
Understanding vararg parameters is useful for Kotlin developers working on apps that process lists of data dynamically, such as user inputs, sensor readings, or batch operations.
Progress0 / 4 steps
1
Create a function with vararg parameter
Write a Kotlin function named averageScore that takes a vararg parameter called scores of type Int. The function should return a Double. For now, just return 0.0 inside the function.
Kotlin
Hint
Use vararg before the parameter name to accept multiple values.
2
Calculate the sum of all scores
Inside the averageScore function, create a variable named sum that adds all values in scores using a for loop.
Kotlin
Hint
Use a for loop to add each score to sum.
3
Calculate and return the average
Modify the averageScore function to return the average of all scores as a Double. Use sum and the size of scores.
Kotlin
Hint
Convert sum to Double before dividing by scores.size.
4
Call the function and print the result
Call the averageScore function with the scores 70, 85, 90, and 75. Print the returned average.
Kotlin
Hint
Use println to show the average returned by averageScore.
Practice
(1/5)
1.
What does the vararg keyword do in Kotlin functions?
easy
A. Allows passing a variable number of arguments to a function
B. Declares a function that returns multiple values
C. Defines a function with no parameters
D. Specifies a function that accepts only one argument
Solution
Step 1: Understand the purpose of vararg
The vararg keyword lets a function accept zero or more arguments of the same type without needing an array or list explicitly.
Step 2: Compare options with this meaning
Only Allows passing a variable number of arguments to a function correctly describes this behavior, while others describe unrelated function features.
Final Answer:
Allows passing a variable number of arguments to a function -> Option A
Quick Check:
Vararg = variable arguments [OK]
Hint: Vararg means many arguments, not just one [OK]
Common Mistakes:
Thinking vararg returns multiple values
Confusing vararg with no parameters
Assuming vararg limits to one argument
2.
Which of the following is the correct syntax to declare a function with a vararg parameter in Kotlin?
fun printAll(____ numbers: Int) { for (n in numbers) println(n) }
easy
A. var
B. varargs
C. vararg
D. args
Solution
Step 1: Recall the exact keyword for variable arguments
Kotlin uses vararg (singular) to declare variable number of arguments.
Step 2: Check each option
Only vararg matches the correct keyword; others are incorrect or invalid syntax.
Final Answer:
vararg -> Option C
Quick Check:
Keyword is vararg, not varargs [OK]
Hint: Remember: vararg is singular keyword [OK]
Common Mistakes:
Using 'varargs' instead of 'vararg'
Omitting the keyword entirely
Using 'var' or 'args' which are invalid here
3.
What is the output of this Kotlin code?
fun sumAll(vararg numbers: Int): Int { var sum = 0; for (n in numbers) sum += n; return sum }
fun main() {
println(sumAll(1, 2, 3))
println(sumAll())
}
medium
A. Error and error
B. 6 and error
C. Error and 0
D. 6 and 0
Solution
Step 1: Understand the function behavior with vararg
The function sums all integers passed. If no arguments, the loop does not run, sum stays 0.
Step 2: Calculate outputs for calls
sumAll(1,2,3) = 1+2+3 = 6; sumAll() = 0 (no arguments)
Final Answer:
6 and 0 -> Option D
Quick Check:
Sum of inputs or zero if none [OK]
Hint: Vararg can be empty, sum then zero [OK]
Common Mistakes:
Assuming empty vararg causes error
Forgetting sum starts at zero
Confusing vararg with list requiring explicit array
4.
Identify the error in this Kotlin function declaration:
fun printNames(vararg names: String, age: Int) {
for (name in names) println(name)
println(age)
}
medium
A. Function cannot have more than one parameter
B. Vararg parameter must be the last parameter
C. Vararg parameter cannot be of type String
D. Vararg parameters must be declared with 'varargs'
Solution
Step 1: Recall vararg parameter position rule
Kotlin requires the vararg parameter to be the last in the parameter list.
Step 2: Check the function parameters
Here, vararg names is before age, which is invalid syntax.
Final Answer:
Vararg parameter must be the last parameter -> Option B
Which call correctly passes an existing array val arr = arrayOf("a", "b", "c") to combine?
hard
A. combine(*arr)
B. combine(arr)
C. combine(arr.toList())
D. combine(arr as String)
Solution
Step 1: Understand how to pass an array to vararg
Kotlin requires the spread operator * to pass an array as vararg arguments.
Step 2: Evaluate each option
combine(*arr) uses *arr, correctly spreading the array. combine(arr) passes the array as a single argument, not vararg. combine(arr.toList()) passes a list, not vararg. combine(arr as String) is invalid cast.
Final Answer:
combine(*arr) -> Option A
Quick Check:
Use * to spread array for vararg [OK]
Hint: Use * to spread array into vararg [OK]
Common Mistakes:
Passing array without * operator
Passing list instead of array
Trying invalid casts to String
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.