Bird
Raised Fist0
Kotlinprogramming~10 mins

Constant values with const val in Kotlin - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Constant values with const val
Declare const val
↓
Assign compile-time value
↓
Use constant in code
↓
Value is inlined at compile time
↓
Cannot change value later
↓
Program runs using constant
This flow shows how a constant is declared with const val, assigned a fixed value, used in code, and remains unchanged during program execution.
Execution Sample
Kotlin
const val MAX_AGE = 100
fun main() {
  println("Max age is $MAX_AGE")
}
This code declares a constant MAX_AGE and prints it.
Execution Table
StepActionEvaluationResult
1Declare const val MAX_AGE = 100MAX_AGE assigned 100 at compile timeMAX_AGE = 100
2Enter main functionReady to execute printlnNo change
3Evaluate println("Max age is $MAX_AGE")Substitute MAX_AGE with 100Prints: Max age is 100
4Program endsNo further actionsExecution stops
💡 Program ends after printing the constant value
Variable Tracker
VariableStartAfter Step 1After Step 3Final
MAX_AGEundefined100 (constant)100 (used in print)100 (unchanged)
Key Moments - 2 Insights
Why can't we change the value of MAX_AGE after declaring it with const val?
Because const val defines a compile-time constant, its value is fixed and inlined during compilation, so changing it later is not allowed (see execution_table step 1).
Is const val the same as a regular val in Kotlin?
No, const val must be assigned a compile-time constant and is inlined, while val can be assigned at runtime and is not inlined (refer to execution_table step 1 vs step 3).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of MAX_AGE after step 1?
Anull
Bundefined
C100
DCannot be determined
💡 Hint
Check the 'Result' column in execution_table row for step 1
At which step does the program print the constant value?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'Action' and 'Result' columns in execution_table for printing
If we try to assign MAX_AGE = 200 after declaration, what happens?
ACompile-time error
BValue changes to 200
CRuntime error
DValue changes but warning shown
💡 Hint
Recall that const val values cannot be changed after compile-time assignment (see key_moments)
Concept Snapshot
const val declares a compile-time constant in Kotlin
Value must be assigned immediately and be a constant expression
Value is inlined where used, no runtime overhead
Cannot be changed after declaration
Used for fixed values like MAX_AGE = 100
Full Transcript
This visual execution trace shows how Kotlin's const val works. First, a constant MAX_AGE is declared and assigned the value 100 at compile time. This value is fixed and cannot be changed later. When the main function runs, it prints the message including MAX_AGE, substituting the constant value directly. The program then ends. Key points include that const val values are inlined and immutable, different from regular val. The quizzes test understanding of when the value is assigned, when it is printed, and what happens if you try to change it.

Practice

(1/5)
1. What is the main purpose of using const val in Kotlin?
easy
A. To declare a constant value that cannot change during program execution
B. To create a variable that can be changed anytime
C. To define a function that returns a constant
D. To declare a class property that is mutable

Solution

  1. Step 1: Understand what const val means

    const val is used to declare constants in Kotlin, which are values fixed at compile time and cannot be changed later.
  2. Step 2: Compare options with the definition

    To declare a constant value that cannot change during program execution correctly states that const val declares a constant value that never changes. Other options describe variables or functions, which are not correct.
  3. Final Answer:

    To declare a constant value that cannot change during program execution -> Option A
  4. Quick Check:

    const val = fixed value [OK]
Hint: Remember: const val means fixed value, no changes allowed [OK]
Common Mistakes:
  • Thinking const val can be changed like a variable
  • Confusing const val with regular val or var
  • Assuming const val can hold complex objects
2. Which of the following is the correct syntax to declare a constant integer named MAX_COUNT with value 100 in Kotlin?
easy
A. val MAX_COUNT = 100
B. var MAX_COUNT = 100
C. const MAX_COUNT = 100
D. const val MAX_COUNT = 100

Solution

  1. Step 1: Recall the correct syntax for constants

    In Kotlin, constants are declared using const val followed by the name and value.
  2. Step 2: Check each option

    const val MAX_COUNT = 100 uses const val MAX_COUNT = 100, which is the correct syntax. val MAX_COUNT = 100 misses const, C misses val, and B uses var which is mutable.
  3. Final Answer:

    const val MAX_COUNT = 100 -> Option D
  4. Quick Check:

    const val + name + = + value = correct syntax [OK]
Hint: const val always together for constants [OK]
Common Mistakes:
  • Omitting const keyword
  • Using var instead of val
  • Writing const without val
3. What will be the output of the following Kotlin code?
const val PI = 3.14
fun main() {
    println("Value of PI: $PI")
}
medium
A. Compilation error
B. Value of PI: $PI
C. Value of PI: 3.14
D. Value of PI: 3

Solution

  1. Step 1: Understand string interpolation in Kotlin

    The println statement uses $PI which means it will replace $PI with the value of the constant PI.
  2. Step 2: Check the constant value and output

    PI is declared as 3.14, so the output will be "Value of PI: 3.14" exactly.
  3. Final Answer:

    Value of PI: 3.14 -> Option C
  4. Quick Check:

    String interpolation replaces $PI with 3.14 [OK]
Hint: Look for $variable inside strings for value substitution [OK]
Common Mistakes:
  • Thinking $PI prints literally as $PI
  • Expecting integer output instead of float
  • Assuming compilation error due to const val usage
4. Identify the error in the following Kotlin code:
const val greeting = "Hello"
fun main() {
    greeting = "Hi"
    println(greeting)
}
medium
A. const val must be declared inside a function
B. Cannot reassign a value to a const val
C. Missing semicolon after greeting declaration
D. Variable greeting is not initialized

Solution

  1. Step 1: Understand const val immutability

    const val declares a constant that cannot be changed after initialization.
  2. Step 2: Analyze the reassignment

    The code tries to assign a new value to greeting which is a constant. This causes a compilation error.
  3. Final Answer:

    Cannot reassign a value to a const val -> Option B
  4. Quick Check:

    const val = fixed, no reassignment allowed [OK]
Hint: const val values cannot be changed after declaration [OK]
Common Mistakes:
  • Trying to assign new value to const val
  • Thinking semicolon is required in Kotlin
  • Declaring const val inside functions (allowed only at top-level or object)
5. You want to create a constant string APP_NAME that can be used throughout your Kotlin app. Which of the following is the best way to declare it to ensure it is a compile-time constant accessible everywhere?
hard
A. Declare const val APP_NAME = "MyApp" at the top level or inside an object
B. Declare val APP_NAME = "MyApp" inside main() function
C. Declare var APP_NAME = "MyApp" inside a class constructor
D. Declare const var APP_NAME = "MyApp" inside a class

Solution

  1. Step 1: Understand where const val can be declared

    In Kotlin, const val must be declared at the top level or inside an object to be a compile-time constant accessible everywhere.
  2. Step 2: Evaluate each option

    Declare const val APP_NAME = "MyApp" at the top level or inside an object correctly declares const val APP_NAME = "MyApp" at the top level or inside an object. Declare val APP_NAME = "MyApp" inside main() function uses val inside a function, which is not compile-time constant. Declare var APP_NAME = "MyApp" inside a class constructor uses var which is mutable. Declare const var APP_NAME = "MyApp" inside a class uses invalid syntax const var.
  3. Final Answer:

    Declare const val APP_NAME = "MyApp" at the top level or inside an object -> Option A
  4. Quick Check:

    const val + top-level/object = global constant [OK]
Hint: const val must be top-level or in object for global constant [OK]
Common Mistakes:
  • Declaring const val inside functions
  • Using var with const keyword
  • Using const without val
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard