DEV Community

mohamed Tayel
mohamed Tayel

Posted on • Edited on

1

Mastering C# Fundamentals: 'if`, `else if`, and Multiple Conditions

Meta Description

Learn how to use if, else if, and nested if statements in C# to make dynamic decisions in your applications. Discover how to combine multiple conditions with logical operators (&&, ||) to create flexible and robust control flows, with practical examples and clear explanations.


Sequential Flow vs. Conditional Flow

In programming, conditional statements enable dynamic decision-making. Unlike sequential code, which executes in order, conditional code reacts to specific criteria. For instance, deciding whether an employee qualifies for a bonus depends on their salary, experience, and employment status.


Visualization of Decision Flow

Here’s a simplified flowchart to represent decision-making for employee bonuses:

  1. Input salary, experience, and full-time status.
  2. Condition Check:
    • Is the salary < $50,000 OR experience > 5 years?
    • AND is the employee full-time?
  3. Output Results:
    • If true: Eligible for bonus.
    • Otherwise: Not eligible for bonus.

Understanding if, else, and Logical Operators

Basic if-else Statement

An if statement evaluates a Boolean condition. If true, it executes the corresponding block of code; otherwise, the else block runs (if provided).

Example 1: Simple Bonus Check

Console.WriteLine("Enter the employee's salary:");
double salary = double.Parse(Console.ReadLine());

if (salary < 50000)
{
    Console.WriteLine("Eligible for a bonus.");
}
else
{
    Console.WriteLine("Not eligible for a bonus.");
}
Enter fullscreen mode Exit fullscreen mode

Logical Operators: Combining Conditions

Logical operators help combine multiple conditions:

  • && (AND): Both conditions must be true.
  • || (OR): At least one condition must be true.

Example 2: Bonus Check with Logical Operators

Let’s add conditions for years of experience and full-time status:

Console.WriteLine("Enter the employee's salary:");
double salary = double.Parse(Console.ReadLine());

Console.WriteLine("Enter the employee's years of experience:");
int experience = int.Parse(Console.ReadLine());

Console.WriteLine("Is the employee full-time (true/false)?");
bool isFullTime = bool.Parse(Console.ReadLine());

if ((salary < 50000 || experience > 5) && isFullTime)
{
    Console.WriteLine("Eligible for a bonus.");
}
else
{
    Console.WriteLine("Not eligible for a bonus.");
}
Enter fullscreen mode Exit fullscreen mode

Using Nested if Statements for Complex Logic

Nested if statements enable multi-level checks. For instance:

  • If the salary is < $40,000 OR experience is > 7 years, check:
    • If full-time, grant a special bonus.
    • If part-time with > 10 years of experience, grant a part-time special bonus.

Example 3: Nested if with Logical Operators

if (salary < 40000 || experience > 7)
{
    if (isFullTime)
    {
        Console.WriteLine("Eligible for a special bonus as a full-time employee.");
    }
    else if (experience > 10)
    {
        Console.WriteLine("Eligible for a special bonus as a part-time employee with over 10 years of experience.");
    }
    else
    {
        Console.WriteLine("Not eligible for a special bonus.");
    }
}
else
{
    Console.WriteLine("Not eligible for a bonus.");
}
Enter fullscreen mode Exit fullscreen mode

Comparison: else if vs. Nested if

Feature else if Nested if
Purpose Checks mutually exclusive conditions. Drills down into sub-conditions for detailed checks.
Code Example if (salary < 50k) else if (salary > 100k) if (salary < 40k) { if (isFullTime) {...} }
Usage Sequential and straightforward conditions. Hierarchical or dependent conditions.

Common Pitfalls and Edge Cases

  1. Boundary Conditions: Test values at the edge of conditions (e.g., $50,000 or $40,000).
  2. Error Handling: Validate user inputs to prevent runtime errors.
   if (!double.TryParse(Console.ReadLine(), out double salary))
   {
       Console.WriteLine("Invalid input. Please enter a valid number.");
       return;
   }
Enter fullscreen mode Exit fullscreen mode
  1. Readability: Avoid deeply nested if blocks. Refactor into methods if necessary.

Assignments

Easy:

Write a program that determines if a student passes or fails based on:

  • Score >= 50 is a pass.
  • Otherwise, it’s a fail.

Medium:

Extend the above to:

  • Score >= 80: "Distinction."
  • Score >= 50 and < 80: "Pass."
  • Otherwise: "Fail."

Difficult:

Create a program to calculate shipping costs based on:

  • Order value (< $50, $50-$100, > $100).
  • Shipping destination (local, international).
  • Membership status (premium, regular).

Conclusion

By mastering conditional statements and logical operators, you can make your C# applications smarter and more dynamic. Whether using if-else for simple decisions or nested if for hierarchical logic, clear structure and testing ensure robust programs. Practice with the provided examples and assignments to enhance your skills further!

Tiger Data image

🐯 🚀 Timescale is now TigerData: Building the Modern PostgreSQL for the Analytical and Agentic Era

We’ve quietly evolved from a time-series database into the modern PostgreSQL for today’s and tomorrow’s computing, built for performance, scale, and the agentic future.

So we’re changing our name: from Timescale to TigerData. Not to change who we are, but to reflect who we’ve become. TigerData is bold, fast, and built to power the next era of software.

Read more

Top comments (0)

Redis image

Short-term memory for faster
AI agents

AI agents struggle with latency and context switching. Redis fixes it with a fast, in-memory layer for short-term context—plus native support for vectors and semi-structured data to keep real-time workflows on track.

Start building

👋 Kindness is contagious

Embark on this engaging article, highly regarded by the DEV Community. Whether you're a newcomer or a seasoned pro, your contributions help us grow together.

A heartfelt "thank you" can make someone’s day—drop your kudos below!

On DEV, sharing insights ignites innovation and strengthens our bonds. If this post resonated with you, a quick note of appreciation goes a long way.

Get Started