
- Scala - Home
- Scala - Overview
- Scala - Features
- Scala - Environment Setup
- Scala - Build Tool (SBT)
- Scala - REPL
- Scala - Dot & Dotty
- Scala - Basic Syntax
- Scala - Hello World Program
- Scala - Identifiers
- Scala - Keywords
- Scala - Comments
- Scala - Code Blocks
- Scala - Semicolon
- Scala - Constructs
- Scala - Expressions
- Scala - Input and Output
- Scala - Optional Braces
- Scala - Underscore (_)
- Data Types and Variables
- Scala - Data Types
- Scala - Type Bounds
- Scala - Context Bound
- Scala - Variances
- Scala - Type Hierarchy
- Scala - Variables
- Scala - Variable Scopes
- Scala - Literals
- Scala - Numeric Types
- Scala - Boolean Types
- Scala - Char Type
- Scala - Unit Types
- Scala - Strings
- Scala - Arrays
- Scala - Null Type
- Scala - Nothing
- Scala - Any Type
- Scala - AnyRef Type
- Scala - Unified Types
- Scala - Dates and Times
- Scala - Ranges
- Scala - Multidimensional Arrays
- Scala - WrappedArray
- Scala - StringBuilder
- Scala - String Interpolation
- Scala - StringContext
- Scala - Type Casting
- Scala var vs val
- Scala Operators
- Scala - Operators
- Scala - Rules for Operators
- Scala - Arithmetic Operators
- Scala - Relational Operators
- Scala - Logical Operators
- Scala - Bitwise Operators
- Scala - Assignment Operators
- Scala - Operators Precedence
- Scala - Symbolic Operators
- Scala - Range Operator
- Scala - String Concatenation Operator
- Scala Conditional Statements
- Scala - IF ELSE
- Scala - IF-ELSE-IF-ELSE Statement
- Scala - Nested IF-ELSE Statement
- Scala Loop Statements
- Scala - Loop Statements
- Scala - while Loop
- Scala - do-while Loop
- Scala - Nested Loops
- Scala - for Loop
- Scala - break Statement
- Scala - yield Keyword
- Scala Classes & Objects
- Scala - Classes & Objects
- Scala - Constructors
- Scala - Auxiliary Constructor
- Scala - Primary Constructor
- Scala - This Keyword
- Scala - Nested Classes
- Scala - Getters and Setters
- Scala - Object Private Fields
- Scala - Singleton Object
- Scala - Companion Objects
- Scala - Creating Executable Programs
- Scala - Stateful Object
- Scala - Enumerations
- Scala - Polymorphism
- Scala - Access Modifiers
- Scala - Apply Method
- Scala - Update Methods
- Scala - UnapplySeq Method
- Scala - Inheritance
- Scala - Extending a Class
- Scala - Method Overloading
- Scala - Method Overriding
- Scala - Generic Classes
- Scala - Generic Functions
- Scala - Superclass Construction
- Scala Methods & Functions
- Scala - Functions
- Scala - Main Methods
- Scala - Functions Call-by-Name
- Scala - Functions with Named Arguments
- Scala - Function with Variable Arguments
- Scala - Recursion Functions
- Scala - Default Parameter Values
- Scala - Functions without Parameters
- Scala - Implicit Parameters
- Scala - Higher-Order Functions
- Scala - Nested Functions
- Scala - Extension Methods
- Scala - Anonymous Functions
- Partially Applied Functions
- Scala - Lazy Val
- Scala - Pure Function
- Scala - Currying Functions
- Scala - Control Abstractions
- Scala - Corecursion
- Scala - Unfold
- Scala - Tail Recursion
- Scala - Infinite Sequences
- Scala - Dynamic Invocation
- Scala - Lambda Expressions
- Scala Collections
- Scala - Collections
- Mutable and Immutable Collections
- Scala - Lists
- Scala - Sets
- Scala - Maps
- Scala - TreeMap
- Scala - SortedMap
- Scala - Tuples
- Scala - Iterators
- Scala - Options
- Scala - Infinite Streams
- Scala - Parallel Collections
- Scala - Algebraic Data Types
- Scala Pattern Matching
- Scala - Pattern Matching
- Scala - Type Patterns
- Scala - Exception Handling
- Scala - Extractors
- Scala - Regular Expressions
- Scala Files I/O
- Scala - Files I/O
- Scala Advanced Concepts
- Scala - Closures
- Scala - Futures
- Scala - Promises
- Scala - Traits
- Scala - Trait Mixins
- Scala - Layered Traits
- Scala - Trait Linearization
- Scala - Sealed Traits
- Scala - Transparent Traits
- Scala - Literal Type Arithmetic
- Scala - Inline keyword
- Scala - Def, Var & Val
- Scala - Dropped Features
- Scala - BDD Testing
Scala - If-else-if-else Statement
An 'if' statement can be followed by an optional 'else if...else' statement, which is very useful to test various conditions using single if...else if statement.
When using if, else if, else statements there are few points to keep in mind.
- An 'if' can have zero or one else's and it must come after any else ifs.
- An 'if' can have zero to many else if's and they must come before the else.
- Once an else if succeeds, none of the remaining else if's or else's will be tested.
Flow Chart
The following is a flow chart diagram for conditional statement −

Syntax
The following is the syntax of an if...else if...else is as follows −
if(Boolean_expression 1){ //Executes when the Boolean expression 1 is true } else if(Boolean_expression 2){ //Executes when the Boolean expression 2 is true } else if(Boolean_expression 3){ //Executes when the Boolean expression 3 is true } else { //Executes when the none of the above condition is true. }
The if statement starts by checking if the first condition (Boolean_expression 1) is true. If it is true, the code right after the if statement runs. If it is false, Scala checks the next condition (Boolean_expression 2) in the else if statement. If this second condition is true, then its code runs.
This checking continues with any other else if statements. If all the conditions are false, Scala runs the code after the else statement. This way, only one block of code runs, based on the first condition that is true.
Example of Scala if-else-if-else Statement
Try the following example program to understand conditional statements (if- else- if- else statement) in Scala programming language −
object Demo { def main(args: Array[String]) = { var x = 30; if( x == 10 ){ println("Value of X is 10"); } else if( x == 20 ){ println("Value of X is 20"); } else if( x == 30 ){ println("Value of X is 30"); } else{ println("This is else statement"); } } }
The if statement starts by checking if the first condition (x == 10) is true. If it is true, the code right after the if statement runs, printing "Value of X is 10". If it is false, Scala checks the next condition (x == 20) in the else if statement. If this second condition is true, then its code runs, printing "Value of X is 20".
This checking continues with any other else if statements. In this case, the next condition is x == 30. If this condition is true, it prints "Value of X is 30".
If all the conditions are false, Scala runs the code after the else statement, which prints "This is else statement". This way, only one block of code runs, based on the first condition that is true.
Save the above program in Demo.scala. The following commands are used to compile and execute this program.
Command
\>scalac Demo.scala \>scala Demo
Output
Value of X is 30
Divisibility
Try the following another example program to understand conditional statements (if-else-if-else statement) in Scala programming language −
object Demo { def main(args: Array[String]) = { val number = 15 if (number % 2 == 0) { println("The number is even.") } else if (number % 3 == 0) { println("The number is divisible by 3.") } else { println("The number is not divisible by 2 or 3.") } } }
The if statement starts by checking if the first condition (number % 2 == 0) is true. If it is true, the code right after the if statement runs, printing "The number is even." If it is false, Scala checks the next condition (number % 3 == 0) in the else if statement. If this second condition is true, then its code runs, printing "The number is divisible by 3".
If all the conditions are false, Scala runs the code after the else statement, which prints "The number is not divisible by 2 or 3." This way, only one block of code runs, based on the first condition that is true.
Save the above program in Demo.scala. The following commands are used to compile and execute this program.
Command
\>scalac Demo.scala \>scala Demo
Output
The number is divisible by 3.