Mytutorialrack In Salesforce Apex, operators are used to perform various operations on variables, values, and expressions. Apex supports a wide range of operators, including arithmetic operators, comparison operators, logical operators, assignment operators, and more. Here are the commonly used operators in Apex:

1. Arithmetic Operators:
• Subtraction (-): Subtracts the second value from the first.
• Multiplication (*): Multiplies two values.
• Division (/): Divides the first value by the second.
2. Comparison Operators:
• Equal to (==): Checks if two values are equal.
• Not equal to (!=): Checks if two values are not equal.
• Greater than (>): Checks if the first value is greater than the second.
• Less than (<): Checks if the first value is less than the second.
• Greater than or equal to (>=): Checks if the first value is greater than or equal to the second.
• Less than or equal to (<=): Checks if the first value is less than or equal to the second.
3. Logical Operators:
• AND (&&): Returns true if both conditions are true.
• OR (||): Returns true if at least one condition is true.
• NOT (!): Returns the opposite of the condition.
4. Assignment Operators:
• Assign (=): Assigns a value to a variable.
1. Increment/Decrement Operators:
• Increment (++) and decrement (–): Increase or decrease the value of a variable by 1.
2. String Concatenation Operator:
• Plus (+): Concatenates two strings.

These operators can be used in Apex to perform calculations, make comparisons, control flow, and more. They are fundamental for manipulating data and controlling the logic in your Apex code.

### Operators in Apex: Arithmetic Operators

```Integer a = 5;
Integer b = 3;

Integer sum = a + b; // Addition
Integer difference = a - b; // Subtraction
Integer product = a * b; // Multiplication
Integer quotient = a / b; // Division

System.debug('Sum: ' + sum); // Output: Sum: 8
System.debug('Difference: ' + difference); // Output: Difference: 2
System.debug('Product: ' + product); // Output: Product: 15
System.debug('Quotient: ' + quotient); // Output: Quotient: 1

```

### Operators in Apex: Comparison Operators

```Integer a = 5;
Integer b = 3;

Boolean isEqual = a == b; // Equal to
Boolean isNotEqual = a != b; // Not equal to
Boolean isGreater = a > b; // Greater than
Boolean isLess = a < b; // Less than
Boolean isGreaterOrEqual = a >= b; // Greater than or equal to
Boolean isLessOrEqual = a <= b; // Less than or equal to

System.debug('Is Equal: ' + isEqual); // Output: Is Equal: false
System.debug('Is Not Equal: ' + isNotEqual); // Output: Is Not Equal: true
System.debug('Is Greater: ' + isGreater); // Output: Is Greater: true
System.debug('Is Less: ' + isLess); // Output: Is Less: false
System.debug('Is Greater or Equal: ' + isGreaterOrEqual); // Output: Is Greater or Equal: true
System.debug('Is Less or Equal: ' + isLessOrEqual); // Output: Is Less or Equal: false

```

### Operators in Apex: Logical Operators

```Boolean condition1 = true;
Boolean condition2 = false;

Boolean andResult = condition1 && condition2; // AND
Boolean orResult = condition1 || condition2; // OR
Boolean notResult = !condition1; // NOT

System.debug('AND Result: ' + andResult); // Output: AND Result: false
System.debug('OR Result: ' + orResult); // Output: OR Result: true
System.debug('NOT Result: ' + notResult); // Output: NOT Result: false

```

## Safe Navigation Operator in Apex

Apex introduced the Safe Navigation Operator (?.) in Winter ’20 release (API version 48.0). The Safe Navigation Operator provides a concise way to access and perform operations on nested objects or fields without encountering a NullPointerException if any intermediate object or field is null.

### Example 4:

Person Class

```public class Person {
public String name;
}

```

```public class Address {
public String street;
public String city;
public String state;
}

```

Anonymous Apex

```Person person = new Person();
person.name = 'John Doe';

// Accessing nested fields without Safe Navigation Operator
if (person != null && person.address != null) {
} else {
}

// Accessing nested fields with Safe Navigation Operator

```

let’s do another example using Safe Navigation operator.

AccountExample

```public class AccountExample {

List<Account> allAccounts = [SELECT
Id,
Description
FROM Account
WHERE AccountNumber = :accountNumber ];
if(!allAccounts.isEmpty() && allAccounts.get(0).Description != null)
{
String accountDescription = allAccounts.get(0).Description.toUpperCase();
System.Debug('Account Description: ' + accountDescription);
}
}

String accountDescription;
accountDescription = [SELECT Id,
Description
FROM Account
WHERE AccountNumber=:accountNumber]?.Description?.toUpperCase();
System.debug('Account Description: ' + accountDescription);
}
}
```

Anonymous Apex

```AccountExample.getAccountDescriptionWithoutSafeNavigation('CD451796');
``Enroll in our Complete Salesforce Developer Training for Beginners``