An enum in Kotlin is a special class that represents a group of constants. Each constant is called an enum entry.
Click to reveal answer
beginner
How do you get all entries of an enum in Kotlin?
You use the values() function, which returns an array of all enum entries.
Click to reveal answer
beginner
Write a Kotlin code snippet to print all entries of an enum named Color.
enum class Color { RED, GREEN, BLUE }
fun main() {
for (color in Color.values()) {
println(color)
}
}
Click to reveal answer
beginner
Can you use a for loop to iterate over enum entries in Kotlin?
Yes, you can use a for loop with EnumClass.values() to go through each enum entry one by one.
Click to reveal answer
intermediate
What type does values() return when called on an enum class?
It returns an array of the enum type, for example, Array<Color> if called on Color enum.
Click to reveal answer
Which function returns all entries of an enum in Kotlin?
Aall()
Bentries()
Cvalues()
Dlist()
✗ Incorrect
The values() function returns an array of all enum entries.
How do you iterate over enum entries in Kotlin?
AUsing a for loop with <code>EnumClass.values()</code>
BUsing <code>EnumClass.entries()</code>
CUsing a while loop with <code>EnumClass.all()</code>
DUsing <code>EnumClass.list()</code>
✗ Incorrect
You use a for loop with EnumClass.values() to iterate over enum entries.
What type does EnumClass.values() return?
AArray of enum entries
BList of enum entries
CSet of enum entries
DMap of enum entries
✗ Incorrect
values() returns an array of enum entries.
Can you modify the array returned by values() to add new enum entries?
AYes, you can add new entries anytime
BNo, enum entries are fixed at compile time
CYes, but only inside the enum class
DOnly if you use a mutable list
✗ Incorrect
Enum entries are fixed at compile time and cannot be changed at runtime.
What will this code print?
enum class Day { MON, TUE, WED }
fun main() {
for (d in Day.values()) println(d)
}
A0 1 2
BError
CDay.MON Day.TUE Day.WED
DMON TUE WED
✗ Incorrect
The code prints each enum entry name on its own line: MON, TUE, WED.
Explain how to iterate over all entries of an enum in Kotlin and why this is useful.
Think about how you can get all enum constants and loop through them.
You got /4 concepts.
Describe what the values() function returns when called on an enum class and how you can use it.
Consider the type and purpose of the <code>values()</code> function.
You got /4 concepts.
Practice
(1/5)
1. What does EnumName.values() return in Kotlin?
easy
A. An array of all enum entries in the order they are declared
B. A list of enum names as strings
C. The first enum entry only
D. A map of enum entries to their ordinal values
Solution
Step 1: Understand the purpose of values()
The values() function returns all enum entries as an array in the order they are declared.
Step 2: Compare options with this behavior
Only An array of all enum entries in the order they are declared correctly describes this behavior; others describe different data types or partial data.
Final Answer:
An array of all enum entries in the order they are declared -> Option A
Quick Check:
EnumName.values() returns all entries [OK]
Hint: Remember: values() gives all enum entries as an array [OK]
Common Mistakes:
Thinking values() returns strings instead of enum objects
Assuming values() returns only one entry
Confusing values() with valueOf()
2. Which of the following is the correct syntax to iterate over all entries of an enum Color in Kotlin?
easy
A. for (c in Color.values()) { println(c) }
B. for (c in Color) { println(c) }
C. for (c in Color.entries()) { println(c) }
D. for (c in Color.all()) { println(c) }
Solution
Step 1: Recall the correct method to get enum entries
In Kotlin, values() returns all enum entries as an array.
Step 2: Check each option's syntax
The correct syntax is for (c in Color.values()) { println(c) }, which uses Color.values() correctly in a for loop. The other options use invalid syntax: iterating directly over Color, or non-existent methods like entries() or all().
Final Answer:
for (c in Color.values()) { println(c) } -> Option A
Quick Check:
Use values() to loop enums [OK]
Hint: Use EnumName.values() to loop enums [OK]
Common Mistakes:
Trying to loop directly over enum class without values()
Using non-existent methods like entries() or all()
Missing parentheses after values()
3. Given the enum:
enum class Direction { NORTH, EAST, SOUTH, WEST }
What is the output of this code?
for (d in Direction.values()) {
print(d.name.first())
}
medium
A. Direction.NORTHDirection.EASTDirection.SOUTHDirection.WEST
B. north east south west
C. NESW
D. N E S W
Solution
Step 1: Understand the loop and print statement
The loop goes through all enum entries: NORTH, EAST, SOUTH, WEST. For each, it prints the first character of the name.
Step 2: Determine printed characters
First letters are 'N', 'E', 'S', 'W'. They are printed without spaces or newlines.
Final Answer:
NESW -> Option C
Quick Check:
First letters combined = NESW [OK]
Hint: Check what exactly is printed inside the loop [OK]
Common Mistakes:
Assuming spaces or newlines are printed
Printing full names instead of first letters
Confusing enum name with enum value
4. What is wrong with this Kotlin code snippet?
enum class Status { STARTED, RUNNING, FINISHED }
for (s in Status) {
println(s)
}
medium
A. The loop variable must be declared as val
B. Enums cannot be iterated in Kotlin
C. The enum class must be declared inside a function
D. Missing call to values() to get enum entries
Solution
Step 1: Identify how to iterate enums in Kotlin
Enums cannot be iterated directly; you must use Status.values() to get all entries.
Step 2: Check the code for missing values()
The code tries to loop over Status directly, which is invalid syntax.
Final Answer:
Missing call to values() to get enum entries -> Option D
Quick Check:
Use Enum.values() to iterate enums [OK]
Hint: Always use values() to loop enums [OK]
Common Mistakes:
Trying to loop enum class directly without values()
Thinking enums are iterable by default
Adding unnecessary val in loop declaration
5. You have this enum:
enum class Level(val difficulty: Int) {
EASY(1), MEDIUM(2), HARD(3)
}
How do you create a map from each enum entry to its difficulty using iteration?
hard
A. val map = Level.values().map { it.difficulty }
B. val map = Level.values().associateWith { it.difficulty }
C. val map = Level.associate { it to it.difficulty }
D. val map = Level.values().associateBy { it.difficulty }
Solution
Step 1: Understand the goal
We want a map where keys are enum entries and values are their difficulty.
Step 2: Use values() and associateWith
Level.values() gives all entries; associateWith maps each entry to a value.
Step 3: Check options
val map = Level.values().associateWith { it.difficulty } correctly uses associateWith { it.difficulty }. val map = Level.associate { it to it.difficulty } is invalid because Level is a class, not a collection. val map = Level.values().map { it.difficulty } returns a list, not a map. val map = Level.values().associateBy { it.difficulty } maps difficulty to enum, reversing keys and values.
Final Answer:
val map = Level.values().associateWith { it.difficulty } -> Option B
Quick Check:
Use values() + associateWith for map [OK]
Hint: Use values().associateWith { } to map enums [OK]
Common Mistakes:
Trying to call associate on enum class directly
Using map() instead of associateWith() for key-value pairs
Confusing associateBy() which reverses keys and values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.