Learnem, Computer education over Internet - Since the year 2000
Home Ebook E-learning Courses Free E-books Login Discussion Boards
Lesson 4 : Conditional Command Execution

Conditional Command Execution

As we saw in previous lesson we can use "for" statement to create a loop for executing a command or a block of commands. In this lesson we will learn more about “for” loops. We will also learn how to run a command conditionally.

More about "for" loops

There are three parts inside condition phrase. In initialization statement you can initialize variables including loop counter or any other variable. In condition statement you can use any kind of logical statement. This logical statement will function as the condition of loop execution. As we mentioned earlier if this condition becomes invalid (false) loop execution will terminate.

for( initialization;  test condition;  run every time command)
   command;

Last section in the “for loop” parentheses is a C language statement which is executed in each loop cycle. In previous examples we used a statement like i++ and count++. These will increase the value of a variable each time loop is executed.  Increase in this variable can change the loop condition logical value to invalid (false), if the loop condition is also based on this variable. Below example will print a multiplication chart (from 1*1 to 9*9). Run the program and see the results.

Example 4-1: example4-1.c

#include<stdio.h>
main()
{
int i,j;
for(i=1;i<10;i++)
 {
 for(j=1;j<10;j++)
   printf("%3d",i*j);
 printf("\n");
 }

system("pause");
}


"if" conditional statements

Sometimes you need a command or a block of commands to be executed when a condition exists or when a condition does not exist. The condition is a logical statement similar to the condition used in while loops. A logical statement is either valid (has a true value) or it is invalid (false).

if(condition)
    command;
if(condition)
  {
  block of commands;
  }


“If statement” is a branching statement because it provides a way to select a path from several execution paths in a program. If condition is true the command or block of commands will be executed.

Example 4-2: example4-2.c

What does this program do?

#include<stdio.h>
main()
{
int n;

printf("Enter a number: ");
scanf("%d",&n);

if(n>=0)
  printf("Number is positive !\n");
if(n<0)
  printf("Number is negative !\n");

system("pause");
}

Now let's see a more complex example.


Example 4-3: example4-3.c
 
Write a program to solve a second-degree equation: ax2+bx+c=0. 

#include<stdio.h>
#include<math.h>

main()
{
float delta,a,b,c,x1,x2;
printf("Enter a : ");
scanf("%f",&a);
printf("Enter b : ");
scanf("%f",&b);
printf("Enter c : ");
scanf("%f",&c);
delta=b*b-(4*a*c);

if(delta<0)
  {
  printf("Equation has no answer !\n");
  system("pause");
  exit(0);
  }

if(delta==0)
  {
  x1=-b/(2*a);
  printf("Equation has two equal answers !\n");
  printf("x1=x2=%f\n",x1);
  system("pause");
  exit(0);
  }

x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("\nX1=%f",x1);
printf("\nX2=%f\n",x2);

system("pause");
}    

Our program gets a,b and c, computes delta (the value under the square root which is delta= ) and 2 possible answers if they exist based on below equations:

    And   

We have used the sqrt() function from the “math” library and to be able to use the library the only thing we have done, is to add the “math.h” file to the included header file list.

More complex "if" statements

Simple form of "if statement” gives you the choice of executing or skipping a command or block of commands. If in a program it is needed to execute a specific command when a condition is true and execute another command when it is false, with your current knowledge you may use two simple "if" statements after each other.

  If(condition)
    Command;
  If(!condition)
    command

!  Sign reverses the logical value of a Boolean expression. If it is true the result will become false with '!' sign and vice versa.

You can use an alternative form of “if statement” to avoid using two statements. "if statement” has more complete forms. Below you see one of the other forms of "if" statement.

  If(condition)
    Command;
  else
    command

In this form, an additional "else" section has been added. When condition is true first command (or block of commands) is executed otherwise "else" section will be run. Below example is the revised form of example 4-2. This time it uses “if…else…” instead of 2 normal “if… statements”.

Example 4-4: example4-4.c

#include<stdio.h>
main()
{
int n;
printf("Enter a number: ");
scanf("%d",&n);

if(n>=0)
  printf("Number is positive !\n");
else
  printf("Number is negative !\n");

system("pause");
}

A useful example and more complex "if" statement

Next example uses an even more complex form of “if statement”. This one has several conditional sections and a single else section.

Example 4-5: example4-5.c

#include<stdio.h>
#include<stdlib.h>
main()
{
int choice;
while(1)
  {
  printf("\n\nMenu:\n");
  printf("1- Math Program\n2- Accounting Program\n");
  printf("3- Entertainment Program\n4- Exit");
  printf("\n\nYour choice -> ");
  scanf("%d",&choice);

  if(choice==1)
     printf("\nMath Program Runs. !");
  else if(choice==2)
     printf("\nAccounting Program Runs. !");
  else if(choice==3)
     printf("\nEntertainment Program Runs. !");
  else if(choice==4)
     {
     printf("\nProgram ends.\n");
     exit(0);
     }
  else
     printf("\nInvalid choice");
  }
}

Above example is an interesting example of a menu driven programs. A loop which continues forever, prints menu items on screen and waits for answer. Every time an answer is entered, a proper action is performed and again the menu is shown to accept another choice.

Loop continues forever unless you enter 4 as your menu selection. This selection will run the 'exit (0);' function which terminates the program.

A more complex form of "if" statement is used in above example.

  if(choice==1)
    command;
  else if(choice==2)
    command;
  else if(choice==3)
    command;
  else if(choice==4)
     {
      block of commands;
     }
  else
    command;

This kind of "if" command is used in cases that you need to select from among multiple options. At the end of the “if statement” there is an else section again.

End Note

I want to use the opportunity and give you a caution at the end of this lesson. As there are many commands and programming techniques in any programming language, you will not be able to remember all of them. The only way to remember things is to practice them. You need to start developing your own small programs. Start with lesson exercises and continue with more sophisticated ones. If you do not do this, all your efforts will become useless in a while.

I always quote this in my programming classes: "No one becomes a programmer without programming"

Exercises

1. Write a program that accepts 10 scores between 0 and 20 for each student. (use "for" loop) Then calculate average for the student. We want to determine an alphabetical average grade for each student according below table.

A 16-20

B 12-16

C 10-12

D 7-10

E 4-7

F 0-4

2. Rewrite example 4-5 to do the following tasks:

- Add two numbers

- Subtract two numbers

- Multiply two numbers

- Exit

Write necessary program inside a block to accept two numbers and perform necessary action for each menu choice. Program execution must continue until user enters 4 as menu choice.


 

Next Lesson


Links
Discussion Boards
Paid Ebooks
Free Ebooks
Testimonials
Faq
Contact
About us
Course Pages
Web Design
C Programming
Free Tutorials
Web Design
PHP Web Prog.
C Prog.
ASP Web Prog.
Free Ebooks
Web Design Ebook
C Prog. Ebook
Free Support
Support for e-books and free courses are offered through CourseFarm website. In order to use the CourseFarm website, You need to create a free member account on it (see main page of the website).

Web Design in 7 Days Course Page

Programming in C in 7 Days Course Page

PHP Web Programming in 7 Days Course Page

Support on CourseFarm is provided by authors of the e-books themselves. You may also contact them on the website for your possible questions.
Home | Educational E-books | Online Courses | Free Books | Discussion Boards
Testimonial | Contact us | FAQ | About us
Society50 Asian Social Network | Science and Tech Blogs | Asia Weblog | CupidB Free MatchMaker

© 2000-2010 Learnem.com, All Rights Reserved. Last Update April, 2011.