📖 Scenario: Imagine you are calculating the total cost of items in a shopping cart with discounts and taxes applied. Understanding how Kotlin calculates expressions helps you get the right total.
🎯 Goal: You will write Kotlin code to calculate a total price using multiple operators and see how operator precedence affects the result.
📋 What You'll Learn
Create variables with exact values for item price, discount, and tax rate
Create a variable for the discounted price calculation
Calculate the final price using operator precedence rules
Print the final price
💡 Why This Matters
🌍 Real World
Calculating prices with discounts and taxes is common in shopping apps and billing systems.
💼 Career
Understanding operator precedence helps developers avoid bugs in financial calculations and write clear, correct code.
Progress0 / 4 steps
1
Create initial price variables
Create three variables: itemPrice with value 100, discount with value 20, and taxRate with value 0.08.
Kotlin
Hint
Use val to create variables and assign the exact values.
2
Calculate discounted price
Create a variable discountedPrice that subtracts discount from itemPrice using the expression itemPrice - discount.
Kotlin
Hint
Use subtraction operator - to find discountedPrice.
3
Calculate final price with tax
Create a variable finalPrice that calculates the total price by adding tax to discountedPrice. Use the expression discountedPrice + discountedPrice * taxRate to apply operator precedence correctly.
Kotlin
Hint
Remember multiplication happens before addition without parentheses.
4
Print the final price
Write a println statement to display the value of finalPrice.
Kotlin
Hint
Use println(finalPrice) to show the result.
Practice
(1/5)
1. In Kotlin, which operator has the highest precedence in the expression 3 + 4 * 2?
easy
A. Multiplication (*)
B. Addition (+)
C. Subtraction (-)
D. Division (/)
Solution
Step 1: Identify operators in the expression
The expression has addition (+) and multiplication (*).
Step 2: Recall operator precedence rules
Multiplication (*) has higher precedence than addition (+), so it runs first.
Final Answer:
Multiplication (*) -> Option A
Quick Check:
Multiplication before addition = Multiplication (*) [OK]
Hint: Multiply and divide before adding or subtracting [OK]
Common Mistakes:
Thinking addition runs before multiplication
Ignoring operator precedence
Assuming left to right always applies
2. Which of the following Kotlin expressions correctly uses parentheses to change the order of operations in 3 + 4 * 2 so that addition happens first?
easy
A. 3 + (4 * 2)
B. (3 + 4) * 2
C. 3 + 4 * 2
D. 3 * (4 + 2)
Solution
Step 1: Understand default precedence
Without parentheses, multiplication runs before addition.
Step 2: Check which option forces addition first
(3 + 4) * 2 uses parentheses around (3 + 4), so addition happens before multiplication.
Final Answer:
(3 + 4) * 2 -> Option B
Quick Check:
Parentheses change order = (3 + 4) * 2 [OK]
Hint: Use parentheses to force addition before multiplication [OK]
Common Mistakes:
Ignoring parentheses effect
Choosing expression without parentheses
Assuming left to right overrides precedence
3. What is the output of this Kotlin code?
val result = 10 - 4 + 2 * 3
println(result)
medium
A. 12
B. 18
C. 14
D. 4
Solution
Step 1: Apply operator precedence
Multiplication (*) runs first: 2 * 3 = 6.
Step 2: Evaluate remaining expression left to right
10 - 4 + 6 = 6 + 6 = 12.
Final Answer:
12 -> Option A
Quick Check:
Multiplication before addition/subtraction = 12 [OK]
Hint: Multiply before adding or subtracting [OK]
Common Mistakes:
Adding before multiplying
Calculating left to right ignoring precedence
Miscomputing subtraction and addition order
4. Find the error in this Kotlin expression:
val x = 5 + 3 * 2 && true
What is the problem?
medium
A. Logical AND (&&) has higher precedence than multiplication
B. Missing semicolon at the end
C. Multiplication operator is invalid here
D. Cannot mix arithmetic and boolean operators without parentheses
Solution
Step 1: Identify mixed types in expression
The expression mixes arithmetic (5 + 3 * 2) and boolean (&& true) without separation.
Step 2: Understand Kotlin type rules
You cannot combine Int and Boolean directly without explicit logic or parentheses.
Final Answer:
Cannot mix arithmetic and boolean operators without parentheses -> Option D
Quick Check:
Mixing Int and Boolean needs care [OK]
Hint: Don't mix numbers and booleans without clear separation [OK]
Common Mistakes:
Thinking semicolon is missing
Assuming && works with numbers
Ignoring type mismatch errors
5. Given the Kotlin expression:
val result = true || false && false || true && false
What is the value of result considering operator precedence?
hard
A. false
B. Syntax error
C. true
D. null
Solution
Step 1: Recall logical operator precedence
Logical AND (&&) has higher precedence than OR (||), so evaluate && first.
Step 2: Evaluate all AND operations
false && false = false, true && false = false.
Step 3: Replace and evaluate OR operations left to right
true || false || false = true || false = true.
Final Answer:
true -> Option C
Quick Check:
AND before OR, final result true [OK]
Hint: Evaluate && before || in logical expressions [OK]
Common Mistakes:
Evaluating OR before AND
Confusing operator precedence
Assuming expression returns null or error
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.