C Programming Language Tutorial

Variables and Data Types

Input/Output

Looping and Selection Structures

Array

Functions

Preprocessing Command

Pointer

Structure

File Operations

Important Knowledge

Logical Operators in C Programming Language

In this tutorial, we will learn about the logical operators in C programming language. Logical operators are used to combine two or more conditions in a single expression. The result of a logical operation is a boolean value, either true (1) or false (0).

There are three main logical operators in C:

  • Logical AND (&&): The logical AND operator (&&) returns true if both operands are true; otherwise, it returns false.
if (age >= 18 && is_registered) {
  printf("You are eligible to vote.\n");
}

In the example above, the printf() statement will only execute if both age >= 18 and is_registered are true.

  • Logical OR (||): The logical OR operator (||) returns true if at least one of the operands is true; otherwise, it returns false.
if (isAdmin || isModerator) {
  printf("You have access to this section.\n");
}

In the example above, the printf() statement will execute if either isAdmin or isModerator is true.

  • Logical NOT (!): The logical NOT operator (!) returns true if the operand is false, and false if the operand is true. It negates the truth value of the operand.
if (!is_logged_in) {
  printf("Please log in to access this page.\n");
}

In the example above, the printf() statement will execute if is_logged_in is false.

Example:

Here's an example demonstrating the usage of logical operators in a simple program:

#include <stdio.h>

int main() {
  int age = 25;
  int is_registered = 1;
  int isAdmin = 0;
  int isModerator = 1;

  if (age >= 18 && is_registered) {
    printf("You are eligible to vote.\n");
  }

  if (isAdmin || isModerator) {
    printf("You have access to this section.\n");
  }

  if (!isAdmin) {
    printf("You are not an admin.\n");
  }

  return 0;
}

Output:

You are eligible to vote.
You have access to this section.
You are not an admin.

In summary, logical operators in C programming language allow you to combine and manipulate conditions in expressions, enabling you to make more complex decisions in your code. By using logical operators, you can control the flow of your program and execute different blocks of code based on multiple conditions.

  1. Using Logical AND, OR, and NOT in C Language:

    #include <stdio.h>
    
    int main() {
        int x = 5, y = 10;
    
        // Logical AND
        if (x > 0 && y > 0) {
            printf("Both x and y are positive\n");
        }
    
        // Logical OR
        if (x > 0 || y > 0) {
            printf("At least one of x or y is positive\n");
        }
    
        // Logical NOT
        if (!(x > 0)) {
            printf("x is not positive\n");
        }
    
        return 0;
    }
    

    Logical AND (&&), OR (||), and NOT (!) operators allow combining and negating conditions.

  2. Combining Logical Operators for Complex Conditions in C:

    #include <stdio.h>
    
    int main() {
        int age = 25;
        char gender = 'M';
    
        // Combining logical operators for complex conditions
        if (age >= 18 && (gender == 'M' || gender == 'F')) {
            printf("Valid adult\n");
        }
    
        return 0;
    }
    

    Logical operators can be combined to create complex conditions, ensuring multiple criteria are met.

  3. Short-Circuit Evaluation with Logical Operators in C:

    #include <stdio.h>
    
    int main() {
        int x = 5, y = 0;
    
        // Short-circuit evaluation
        if (y != 0 && x / y > 2) {
            printf("This line is not executed due to short-circuiting\n");
        }
    
        return 0;
    }
    

    Short-circuit evaluation stops evaluating conditions once the result is determined, avoiding unnecessary computations.

  4. C Code Examples Demonstrating Logical Operators:

    #include <stdio.h>
    
    int main() {
        int a = 1, b = 0;
    
        // Logical operators example
        if (a && !b) {
            printf("Condition is true\n");
        } else {
            printf("Condition is false\n");
        }
    
        return 0;
    }
    

    Logical operators are widely used in conditions to control the flow of the program.

  5. Applying Logical Operators to Control Flow in C Programming:

    #include <stdio.h>
    
    int main() {
        int score = 75;
    
        // Controlling flow with logical operators
        if (score >= 60 && score <= 100) {
            printf("Pass\n");
        } else {
            printf("Fail\n");
        }
    
        return 0;
    }
    

    Logical operators are essential for controlling the flow of a program based on specific conditions.

  6. Comparing Bitwise and Logical Operators in C:

    #include <stdio.h>
    
    int main() {
        int x = 5, y = 3;
    
        // Bitwise AND vs. Logical AND
        if (x & y) {
            printf("Bitwise AND: Condition is true\n");
        }
    
        if (x && y) {
            printf("Logical AND: Condition is true\n");
        }
    
        return 0;
    }
    

    Bitwise operators (&, |) operate on individual bits, while logical operators (&&, ||) operate on entire conditions.

  7. Boolean Expressions and Truth Tables in C Language:

    #include <stdio.h>
    
    int main() {
        int p = 1, q = 0;
    
        // Boolean expressions and truth tables
        printf("AND Truth Table:\n");
        printf("%d && %d = %d\n", p, q, p && q);
    
        printf("OR Truth Table:\n");
        printf("%d || %d = %d\n", p, q, p || q);
    
        return 0;
    }
    

    Boolean expressions follow truth tables, where the result depends on the combination of true (1) and false (0) values.

  8. Common Mistakes with Logical Operators in C Programming:

    #include <stdio.h>
    
    int main() {
        int x = 5;
    
        // Common mistake: incorrect usage of logical operators
        if (x > 0 & x < 10) {
            printf("Incorrect: Condition is true\n");
        } else {
            printf("Correct: Condition is false\n");
        }
    
        return 0;
    }
    

    A common mistake is using single & or | instead of && or ||, which can lead to unexpected behavior.