• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » C » Structures » Nested if Statements in C Language
Next →
← Prev

Nested if Statements in C Language

By Dinesh Thakur

The C language allows nested if statements in which the if block and/or else block of an if statement contains if or if-else statements. The inner if statement(s) may in turn contain other if statements and so on.

We’ll be covering the following topics in this tutorial:

  • Two-Level Nested if Statements
  • Other Forms of Two-Level Nested if Statements

Two-Level Nested if Statements

Consider the general form of the if else statement given below.

if (expr)

statement1 ;

else statement2 ;

The general form of a two-level nested if statement obtained by replacing both statement1 and statement2 in the above form with the if-else statement itself is given below.

             two-level nested if statement

Observe how the inner if-else statements are indented (shifted to the right) to improve readability. Also note that since the if block and else block of the outer if-else statement comprise a single if-else statement, they need not be included within braces. However, we can surround inner if-else statements with braces to improve readability as illustrated in the right-hand side form. As explained earlier, the use of such braces also prevents errors when we add one or more statements to these if and else blocks.

            The flowchart for this general two-level nested if statement

The flowchart for this general two-level nested if statement is given in Fig a. Observe that only one of the four alternative statements (statement}, statement2, statement3, statement4) will be executed depending on the values of the test expressions expr1, expr2 and expr3. Also note that these alternative statements can be any valid C statement such as a simple statement (assignment, function call, etc.), control statement or compound statement. The execution of this statement is as follows: Initially, expr1 is evaluated. If it is true (non-zero), expr2 is evaluated and depending on its value, either statement1 or statement2 is executed, i. e., if expr2 is true, statement] is executed; otherwise, statement2 is executed. After execution of either statement1 or statement2, the control leaves nested if statement. Note that expr3 is not evaluated in this case.

On the other hand, if expr1 evaluates as false, expr3 is evaluated and depending on its value, either statement3 or statement4 is executed. After execution of either statement, control leaves the nested if statement. Note that expr2 is not evaluated in this case.

Other Forms of Two-Level Nested if Statements

Consider that either the if block or the else block in the general form of the if-else statement is replaced with an if-else statement, but not both. Now we have two other forms of two-level nested if statement, as shown below. 

             two other forms of two-level nested if statement

The flowcharts for these statements are given in Fig b and Fig c, respectively. The second form which contains an if-else statement only in the else part is called as if else- if statement and is explained shortly in detail.

             

             

As the else block in an if-else statement is optional, we can omit the else blocks in the inner if statements to obtain several additional forms of the two-level nested if statement. However, while writing such statements we need to remember the following rule of nested if statements: An else clause is associated with the nearest if statement that is not already associated with an else clause.

If we omit the else clause in the inner if statements of a general two-level nested if statement, we get two other forms given below and illustrated in Fig.

            

            

Note that braces are required around the inner if statement in the first format for correct interpretation that the else-clause of the inner if statement is omitted, as illustrated in Fig. In the absence of these braces, the else clause of the outer if statement becomes incorrectly associated with the inner if statement. Also note that we do not require such braces in the second case.

Two other forms of two-level nested if statements are given below. In the first form, the else clause of the outer if statement is omitted. Whereas, in the second form, the else clause of the outer and inner if statements are omitted.

              

Illustrates nested if (expressions)

 
#include <stdio.h>
void main ()
{
float A, B, C;
clrscr();
printf("Enter two integers.");
scanf ("%f %f", &A, &B );
printf("You have entered the following two numbers.\n");
printf("A = %.3f\t B = %.3f \n", A, B );
if (A!=B)
{
  if (A >B)
      printf("A is greater than B.\n");
  if (A<=B)
      printf("A is less than or equal to B.\n" ); }
      C = (A+ B)/2;
      printf("%.3f is mean of the two numbers %.3f and %.3f\n",C,A,B);
}

You’ll also like:

  1. Nested While Statements in C
  2. Explain control statements those are used in C programming language
  3. Nested Switch Statements Java Example
  4. Nested Try Statements in Java Examples
  5. Conditional Statements in C++ or if Statements
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

C Programming

C Programming Tutorials

  • C - History
  • C - Anatomy
  • C - Constants
  • C - Identifiers
  • C - Data Types
  • C - Libraries File
  • C - Header Files
  • C - Basic Language
  • C - Data Types Sizes
  • C - Header Files Importance
  • C - Escape Sequences
  • C - Main() Purpose
  • C - Program Procedure
  • C - Control Statements
  • C - Enumeration Constant
  • C - Add numbers
  • C - Return Statement
  • C - Avoid Goto
  • C - Command Line Arguments
  • C - Switch Case
  • C - Switch Case Limitations
  • C - getchar() and putchar()
  • C - Iteration Statements
  • C - Pass by Value and Reference
  • C - Structures and Unions
  • C - Structure
  • C - Dynamic Memory
  • C - Fgets and Fputs Functions
  • C - Gets() and Puts() Functions
  • C - Armstrong Number
  • C - Storage Classes
  • C - Fibonacci Series
  • C - Precision Setting
  • C - const Parameters

C - Variable & It's Type

  • C - Variables
  • C - Variable Lifetime
  • C - Static Variable
  • C - Register Variable
  • C - Global Variables
  • C - Auto Variables
  • C - Local Variables

C - Operator & Expressions

  • C - Operator
  • C - Boolean Operators
  • C - Bitwise Operator
  • C - Arithmetic Operators
  • C - Modulus Operator
  • C - Ternary Operator
  • C - Expressions
  • C - Arithmetic Expressions

C - Array

  • C - Arrays
  • C - Array Types
  • C - Array Characteristics
  • C - Static Arrays
  • C - Global Arrays
  • C - 3D Arrays
  • C - Dynamic Arrays
  • C - Pointer to 3D Arrays
  • C - Array Elements Hold
  • C - Arrays as Function Parameters
  • C - Accessing Matrix Elements
  • C - File Handling
  • C - Matrix Multiplication
  • C - Dynamic Memory Allocation

C - Searching & Sorting

  • C - Data Structures
  • C - Linear Search
  • C - Bubble Sort
  • C - Merge Sort
  • C - Linked List
  • C - Insertion Sort
  • C - Binary Search
  • C - Selection Sort
  • C - Quick Sort

C - Functions

  • C - Functions
  • C - Functions Advantages
  • C - Void Functions
  • C - Function Call
  • C - Default Return Value
  • C - String functions

C - Pointer

  • C - Pointers
  • C - Type Casting Of Pointers
  • C - Pointer Advantages
  • C - Pointers Initialization
  • C - Vectors and Pointers

C - Differences

  • C - C Vs C++
  • C - Formal Args. Vs Actual Args.
  • C - Keywords Vs Identifiers
  • C - Strings Vs Character Arrays
  • C - Address Vs Dereference Operator
  • C - Goto Vs longjmp
  • C - Declaring Vs Defining Variable
  • C - String Vs Array
  • C - Call by Value Vs Reference
  • C - Structure Vs Union
  • C - For Vs While loops
  • C - Compiler Vs Interpreter

C - Programs

  • C Program Standard Deviation
  • C Program Calculate Tax
  • C Program Sum Series
  • C Program Merge Arrays
  • C Program Euclid’s Algorithm
  • C Program Print Weekdays
  • C Program Sum of Digits
  • C Program Print a list
  • C Program Print Pythagorean
  • C Program Quiz program
  • C Program Display Table
  • C Program Print Comma-Separated
  • C Program Prints Prime Numbers
  • C Program for Print Integer
  • C Program Count Number
  • C Program Print Color Name
  • C Program Print Odd Numbers
  • C Program Calculate area
  • C Program for a Menu
  • C Program Add Two Vectors
  • C Program Array Addresses
  • C Program Division by Zero Error
  • C Program Compare two Dates
  • C Program Tower of Hanoi
  • C Program return 3 Numbers
  • C Program for Prime Numbers
  • C Program for Factorial
  • C Program for Palindrome

Other Links

  • C Programming - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW