DevAcademia
C++C#CPythonJava
  • C Basics

  • Introduction to C
  • Getting Started with C
  • C Syntax
  • C Output
  • C Comments
  • C Variables
  • C Data Types
  • C Constants
  • C Operators
  • C Booleans
  • C If...Else Statements
  • C Switch Statement
  • C While Loops
  • C For Loops
  • C Break and Continue
  • C Strings
  • C User Input
  • C Memory Address
  • C Pointers
  • C Files
  • C Functions

  • C Functions
  • C Function Parameters
  • C Scope
  • C Function Declaration
  • C Recursion
  • C Math Functions
  • C Structures

  • C Structures
  • C Structs & Pointers
  • C Unions
  • C Enums

  • C Enums
  • C Memory

  • C Allocate Memory
  • C Access Memory
  • C Reallocate Memory
  • C Deallocate Memory
  • C Structs and Memory
  • C Memory Example
  • C Quiz

  • C Quiz
  • C Basics

  • Introduction to C
  • Getting Started with C
  • C Syntax
  • C Output
  • C Comments
  • C Variables
  • C Data Types
  • C Constants
  • C Operators
  • C Booleans
  • C If...Else Statements
  • C Switch Statement
  • C While Loops
  • C For Loops
  • C Break and Continue
  • C Strings
  • C User Input
  • C Memory Address
  • C Pointers
  • C Files
  • C Functions

  • C Functions
  • C Function Parameters
  • C Scope
  • C Function Declaration
  • C Recursion
  • C Math Functions
  • C Structures

  • C Structures
  • C Structs & Pointers
  • C Unions
  • C Enums

  • C Enums
  • C Memory

  • C Allocate Memory
  • C Access Memory
  • C Reallocate Memory
  • C Deallocate Memory
  • C Structs and Memory
  • C Memory Example
  • C Quiz

  • C Quiz

Loading C tutorial…

Loading content
C BasicsTopic 25 of 64
←PreviousPrevNextNext→

C if Statement

Introduction to the if Statement

The if statement is the fundamental control flow statement in C programming that allows conditional execution of code blocks. It enables programs to make decisions based on Boolean expressions, executing specific code only when certain conditions are met.

In C, any non-zero value is considered true, and zero is considered false. This allows for flexible condition checking beyond simple Boolean values.

Syntax and Structure

The basic syntax of an if statement is:

if (condition) {

// Code to execute if condition is true

}

The condition can be any expression that evaluates to a numeric value. If the result is non-zero (true), the code block executes; if zero (false), it's skipped.

Working Mechanism

1. The condition inside parentheses is evaluated first

2. If the result is non-zero (true), control passes to the statement or block following the condition

3. If the result is zero (false), the statement or block is skipped

4. Program execution continues with the next statement after the if block

Basic Example

Example
#include <stdio.h>

int main(void) {
    int number = 10;
    
    // Simple if statement
    if (number > 5) {
        printf("Number is greater than 5\n");
    }
    
    return 0;
}
Output
Number is greater than 5

Single Statement vs. Code Block

For single statements, curly braces are optional:

if (condition) statement;

However, using braces is recommended even for single statements as it improves readability and reduces errors when modifying code later.

For multiple statements, braces are mandatory to define the code block.

Example
#include <stdio.h>

int main(void) {
    int x = 5;
    
    // Without braces (single statement)
    if (x > 0)
        printf("x is positive\n");
    
    // With braces (recommended)
    if (x > 0) {
        printf("x is positive\n");
        printf("Value: %d\n", x);
    }
    
    return 0;
}
Output
x is positive
x is positive
Value: 5

Common Condition Types

if statements can use various types of conditions:

• Relational operators: ==, !=, >, <, >=, <=

• Logical operators: && (AND), || (OR), ! (NOT)

• Arithmetic expressions

• Function return values

• Pointer checks

Example
#include <stdio.h>

int isPositive(int x) { return x > 0; }

int main(void) {
    int a = 10, b = 20;
    int *ptr = &a; // non-NULL pointer for demonstration
    
    // Relational operator
    if (a < b) printf("a is less than b\n");
    
    // Logical operator
    if (a > 0 && b > 0) printf("Both are positive\n");
    
    // Arithmetic expression
    if ((a + b) > 25) printf("Sum is greater than 25\n");
    
    // Function return value
    if (isPositive(a)) printf("a is positive\n");
    
    // Pointer check
    if (ptr != NULL) printf("Pointer is not NULL\n");
    
    return 0;
}
Output
a is less than b
Both are positive
Sum is greater than 25
a is positive
Pointer is not NULL

Nested if Statements

if statements can be nested within other if statements to create complex decision structures.

Each nested if is evaluated only if the outer condition is true.

Example
#include <stdio.h>

int main(void) {
    int num = 15;
    
    if (num > 0) {
        printf("Number is positive\n");
        
        if (num % 2 == 0) {
            printf("Number is even\n");
        } else {
            printf("Number is odd\n");
        }
    }
    
    return 0;
}
Output
Number is positive
Number is odd

Common Pitfalls and Best Practices

1. Always use braces {} for code blocks, even for single statements

2. Be careful with assignment (=) vs. equality (==) operators; if intentional, prefer explicit comparison like `(x = expr) != 0` for clarity

3. Avoid complex conditions that are hard to read - break them into simpler parts

4. Use parentheses to clarify operator precedence in complex conditions

5. Consider using early returns to reduce nesting depth

Test your knowledge: C if Statement
Quiz Configuration
8 of 8 questions
Random
Previous allowed
Review enabled
Early close allowed
Estimated time: 10 min
C BasicsTopic 25 of 64
←PreviousPrevNextNext→