Skip to content
Home » Blog Archive » Beginner’s Guide to Salesforce Apex: Navigating Conditional Statements

Beginner’s Guide to Salesforce Apex: Navigating Conditional Statements

Hey there, Apex explorers! Today, we’re going to delve into conditional statements in Apex, a key type of control flow statements. If you’re just starting out, don’t worry – I’ll make this journey through if, else if, switch, and the ternary operator simple and easy to understand. And keep an eye out: we’ll tackle the other major type, loops, in an upcoming blog. Let’s dive into the world of conditional statements and get started!

Visualizing Decision Paths: Understanding Apex Conditional Logic with Flowcharts

Take a look at the flowchart below. It’s our first step in visualizing how Apex handles decisions. This chart illustrates a straightforward process:

  • Your code asks a question (Condition),
  • and based on the ‘yes’ or ‘no’ answer (true or false), it decides which path to take.

This is exactly the same way we approach conditional statements that we’re covering in this post — they help your code make choices similar to how we make decisions every day.

Simple Flow Chart Sample
Simple Flowchart Sample
Flowchart with two conditions
Flowchart with two conditions

Understanding Conditions and Logical Operators

Before we get into the intricacies of conditional statements like if, else if, and switch, it’s important to grasp the fundamentals of conditions and logical operators in Apex.

Conditions: The Foundation of Decision-Making

In Apex, a condition is a simple expression that evaluates to either true or false. These conditions form the backbone of your conditional statements, as they determine which path your code will take.

Simple Condition Example:

Boolean isSunny = true;  // A basic condition set to true

Logical Operators: Combining Conditions

Logical operators allow you to combine these basic conditions to form more complex ones. There are two primary logical operators you’ll use:

AND (&&)OR (||)
This operator is used when you want all combined conditions to be true for the overall condition to be true.Use this operator when you want any one of the combined conditions to be true for the overall condition to be true.
Logical Operators

Logical Operators Example:

Boolean isWeekend = true;
Boolean isHoliday = false;

// Using AND (&&)
Boolean isRelaxingDay = isWeekend && isHoliday; // Evaluates to false

// Using OR (||)
Boolean isTimeOff = isWeekend || isHoliday; // Evaluates to true

//print result
System.debug('isRelaxingDay: '+isRelaxingDay);
System.debug('isTimeOff: '+isTimeOff);
Screenshot: Demonstrating the Use of AND (&&) and OR (||) Operators in Apex with Boolean Variables and their Output in the Salesforce Developer Console
Screenshot: Demonstrating the Use of AND (&&) and OR (||) Operators in Apex with Boolean Variables and their Output in the Salesforce Developer Console

The Importance of Parentheses in Logical Expressions

After getting comfortable with conditions and logical operators, it’s crucial to understand how parentheses can impact the logic of your expressions in Apex.

Why Parentheses Are Key?

Parentheses in logical expressions determine the order of operations, similar to their use in arithmetic. They are essential in complex conditions involving multiple logical operators, ensuring your expressions are evaluated as intended.

Without ParenthesesWith Parentheses
In Apex, logical AND (&&) operators have higher precedence than OR (||). Without parentheses, your conditions might not be evaluated in the order you expect.Using parentheses, you can explicitly define the order in which conditions are evaluated, making your logic clearer and preventing unintended results.
Explanation to the benefit of using parantheses

Example Demonstrating Parentheses Usage

Boolean condition1 = true; 
Boolean condition2 = true; 
Boolean condition3 = false; 

//Testing output without parantheses
/* Without parentheses, the condition is evaluated as follows:
   1. condition2(true) && condition3(false) first resulting in false
   2. condition1(true) || false resulting true value
*/
if (condition1 || condition2 && condition3) { 
	System.debug('Check 1 Condition is true.'); 
} else { 
	System.debug('Check 1 Condition is false.'); 
}

//Testing output with parantheses
/* With parentheses, the condition is evaluated as follows:
   1. condition1(true) && condition2(true) first resulting in true
   2. true && condition3(false) resulting false value
*/
if ((condition1 || condition2) && condition3) { 
	System.debug('Check 2 Condition is true.'); 
} else { 
	System.debug('Check 2 Condition is false.'); 
}
Screenshot: Demonstrating the impact of using parentheses to condition and their Output in the Salesforce Developer Console

Remember, understanding these conditions and operators is key to mastering conditional statements in Apex. They form the foundation of decision-making in your code. Now, with this knowledge, let’s return to our main topic of conditional statements.

1. Understanding “if” Statements

The if statement is your bread and butter for decision-making in Apex. It allows your code to take different paths based on certain conditions.

if statements are incredibly useful when you need to validate data.

Syntax

if (condition) { 
    // Code to execute if condition is true
}

Example 1:

Integer score = 60;

//In this example, if the score is greater than 50, Apex prints 'You passed!'.
if (score > 50) {
    System.debug('You passed!');
}
Screenshot: If Statement output in the Salesforce Developer Console

Example 2:

Integer inputScore=200; // if you choose value between 0 and 100 you will get valid value

if (inputScore >= 0 && inputScore <= 100) {
    // Process the score
    System.debug('Valid Value');
} else { 
    // Show an error message
    System.debug('Invalid Value');
}
Screenshot: If Statement output in the Salesforce Developer Console

2. The Versatility of “else if” and “else”

When you have multiple conditions to check, else if comes into play. You can chain multiple else if statements after an if. And if none of the conditions are met, else catches everything else.

“else if’ are incredibly useful when you have a range of conditions to check.

Syntax

if (condition1) {
    // Code for condition1
} else if (condition2) {
    // Code for condition2
} else {
    // Code if none of the conditions are met
}

Example 1

Integer temperature=40;

if (temperature < 20) {
    System.debug('It’s cold!');
} else if (temperature < 30) {
    System.debug('Nice weather!');
} else {
    System.debug('It’s hot!');
}
Screenshot: If-else if Statement output in the Salesforce Developer Console

Example 2

String userRole='Tester';

if (userRole == 'Admin') {
    System.debug('Weclome Admin');
} else if (userRole == 'User') {
    System.debug('Weclome User');
} else {
    System.debug('Hello Guest User');
}
Screenshot: If-else if Statement output in the Salesforce Developer Console

3. The “switch” Statement: A Neat Alternative

The switch statement is a neat and organized way to handle multiple conditions, especially when dealing with known values like Enums or String.

Syntax

switch on expression { 
    when value1 {
        // Code for value1
    }
    when value2 {
        // Code for value2
    }
    when else { // default block, optional
        // Code if none of the values are matched
    }
}

Notes:

  1. The expression can be of the following types:
  2. The when value:
    • It can be a single value or multiple values (comma separated as per the below example)
    • Every ‘when’ value in your code needs to be one-of-a-kind. For instance, if you use a value like ‘x’, it should only appear in a single ‘when’ block. A ‘when’ block will match a condition only once at the most.
    • The value can be null : when null {….}
  3. ‘when else’
    • It is optional.
    • If added, it must be the last block in the switch statement.

Example

String dayOfWeek='Thursday';

switch on dayOfWeek {
    when 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' {
        System.debug('Weekday');
    }
    when 'Saturday', 'Sunday' {
        System.debug('Weekend!');
    }
    when else {
        System.debug('Invalid day');
    }
}
Screenshot: Switch Statement output in the Salesforce Developer Console

4. A Quick Word on Ternary Operator

Although we’ll cover the ternary operator in another blog, here’s a quick peek: It’s a shorthand for if-else and is great for simple conditions.

Format

(condition) ? value_if_true : value_if_false

Example:

Integer score = 49;
String result = (score > 50) ? 'Pass' : 'Fail'; 
System.debug('result: '+result);
Screenshot: ternary operator output in the Salesforce Developer Console

The above example using the ternary operator is a shorter version of the following logic, if expressed with an if-else statement.

Integer score = 49;
String result;

if (score > 50) {
    result = 'Pass';
} else {
    result = 'Fail';
}

System.debug('result: ' + result);

As you can see, the ternary operator in this simple example is not only shorter but also easier to read, making your code cleaner and easier to maintain.

Comparing When to Use Each Type

Alright, we’ve just gone through the different conditional statements in Apex. To make things easier, here’s a handy table. It’ll show you when to use each type of statement. Think of it as a quick guide for your Apex coding adventures!

Conditional StatementWhen to useKey Characteristics
ifYou have a single condition to check.Simple and direct; evaluates a condition as true or false.
else ifYou have multiple conditions, but only one meets.Used after an if statement; checks additional conditions.
elseTo handle the scenario when none of the if or else if conditions are met.Provides a default path when no conditions are true.
switchHandling multiple known values in an organized way.Great for Enums or specific cases; cleaner than multiple ifelse statements.
TernaryYou need a quick and simple conditional assignment.A concise alternative to ifelse; format: condition ? value_if_true : value_if_false.
Choosing the Right Conditional Statement in Apex

So there you have it! By understanding and effectively using parentheses, you can gain finer control over your program’s logic, ensuring it behaves exactly as you intend. Keep in mind that conditional statements are essential for guiding your code down the right path based on different conditions. With consistent practice, you’ll soon be navigating through Apex like a seasoned pro. Stay excited for more Apex insights, and as always, happy coding!

Resources

  1. Conditional (if-else) statements
  2. Switch Statements

Join the conversation

Your email address will not be published. Required fields are marked *