Mastering Conditional Statements in Scala: If-Else and Match Explained
Scala conditional statements example with if-else and match expressions for decision making
Introduction
Conditional statements are fundamental in programming, allowing developers to control the flow of execution based on conditions. In Scala, the primary conditional constructs include if-else and match, which provide powerful ways to handle decision-making in code.
In this guide, we will explore conditional statements in Scala, their syntax, use cases, and best practices for writing clean and efficient code.

The if-else statement in Scala works similarly to other programming languages, evaluating a condition and executing the corresponding block of code.
object IfElseExample {
def main(args: Array[String]): Unit = {
val num = 10
if (num > 0) {
println("Positive number")
} else {
println("Non-positive number")
}
}
}
Positive number
val age = 18
if (age < 13) {
println("Child")
} else if (age < 20) {
println("Teenager")
} else {
println("Adult")
}
Scala allows writing concise if statements without curly braces for single-line expressions:
if (age >= 18) println("Eligible to vote")
In Scala, if-else can return a value, making it more functional:
val result = if (num % 2 == 0) "Even" else "Odd"
println(result)
The match expression in Scala is an advanced alternative to if-else statements, similar to switch-case in other languages but more powerful.
val day = "Monday"
day match {
case "Monday" => println("Start of the week")
case "Friday" => println("Weekend is near")
case _ => println("A regular day")
}
Scala's match can return a value, making it more expressive:
val numType = num match {
case n if n > 0 => "Positive"
case 0 => "Zero"
case _ => "Negative"
}
println(numType)
val vowelCheck = 'a' match {
case 'a' | 'e' | 'i' | 'o' | 'u' => "Vowel"
case _ => "Consonant"
}
println(vowelCheck)
case class Person(name: String, age: Int)
val person = Person("John", 25)
person match {
case Person("John", 25) => println("Matched John")
case Person(_, age) if age > 18 => println("Adult")
case _ => println("Unknown Person")
}
| Scenario | Use If-Else | Use Match |
|---|---|---|
| Simple conditions | ✅ | ❌ |
| Multiple cases | ❌ | ✅ |
| Pattern matching | ❌ | ✅ |
| Expression returns | ✅ | ✅ |
match for multiple conditions – It is more readable and concise.if-else or match instead of just printing.Conditional statements in Scala provide flexibility and power through if-else and match. While if-else is suitable for simple conditions, match is preferred for complex decision-making and pattern matching.
By mastering these concepts, Scala developers can write clean, efficient, and maintainable code. Experiment with these constructs in your projects to leverage their full potential!