4 If Else 28dec2020

Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

if-else statements

Flow of Control
• Unless specified otherwise, the order of statement
execution through a function is linear: one
statement after another in sequence
• Some programming statements allow us to:
▪ decide whether or not to execute a particular statement
▪ execute a statement over and over, repetitively

• These decisions are based on boolean expressions


(or conditions) that evaluate to true or false
• The order of statement execution is called the flow
of control
Conditional Statements
• A conditional statement lets us choose which
statement will be executed next
• Therefore they are sometimes called selection
statements
• Conditional statements give us the power to
make basic decisions
• The C conditional statements are the:
▪ if statement
▪ if-else statement
▪ switch statement
The if Statement
• The if statement has the following syntax:

The condition must be a


boolean expression. It must
if is a C evaluate to either true or false.
reserved word

if ( condition )
statement;

If the condition is true, the statement is executed.


If it is false, the statement is skipped.
Logic of an if statement

condition
evaluated

true
false
statement
Relational Operators
• A condition often uses one of C's equality
operators or relational operators

== equal to
!= not equal to
< less than
> greater than
<= less than or equal to
>= greater than or equal to

• Note the difference between the equality operator


(==) and the assignment operator (=)
The if Statement
• An example of an if statement:
if (sum > MAX)
delta = sum - MAX;
printf ("The sum is %d\n“, sum);

• First the condition is evaluated -- the value of sum


is either greater than the value of MAX, or it is not
• If the condition is true, the assignment statement
is executed -- if it isn’t, it is skipped.
• Either way, the call to printf is executed next
Example: Age.c

• Write a C program that asks for your age and


checks if you are older than 21 years.
The if-else Statement
• An else clause can be added to an if statement to
make an if-else statement

if ( condition )
statement1;
else
statement2;

• If the condition is true, statement1 is executed;


if the condition is false, statement2 is executed
• One or the other will be executed, but not both
Logic of an if-else statement

condition
evaluated

true false

statement1 statement2
Practice
• Example 2.1: While purchasing certain items, a
discount of 10% is offered if the quantity
purchased is more than 1000. If quantity and price
per item are input through the keyboard, write a
program to calculate the total expenses.
• main( )
{
int qty,dis=0;
float rate, tot ;
printf ( "Enter quantity and rate " ) ;
scanf ( "%d %f", &qty, &rate) ;
if ( qty > 1000 )
dis = 10 ;
tot = ( qty * rate ) - ( qty * rate * dis / 100 ) ;
printf ( "Total expenses = Rs. %f", tot ) ;
}
Example: Wages.c
• Write a C program that calculates weekly wages
for hourly employees.

• Regular hours 0-40 are paid at $10/hours.

• Overtime (> 40 hours per week) is paid at 150%


Indentation
• The statement controlled by the if statement is
indented to indicate that relationship
• The use of a consistent indentation style makes a
program easier to read and understand
• Although it makes no difference to the compiler,
proper indentation is crucial
Logical Operators
• C defines the following logical operators:
! Logical NOT
&& Logical AND
|| Logical OR

• Logical NOT is a unary operator (it operates on


one operand)

• Logical AND and logical OR are binary operators


(each operates on two operands)
Logical NOT
• The logical NOT operation is also called logical
negation or logical complement
• If some condition a is true, then !a is false; if a is
false, then !a is true
• Logical expressions can be shown using a truth
table

a !a
true false
false true
Logical AND and Logical OR
• The logical AND expression
a && b
is true if both a and b are true, and false otherwise

• The logical OR expression


a || b
is true if a or b or both are true, and false
otherwise
Logical Operators
• Expressions that use logical operators can form
complex conditions

if (total < MAX+5 && !found)


printf ("Processing…");

• All logical operators have lower precedence than


the relational operators
• Logical NOT has higher precedence than logical
AND and logical OR
Logical Operators
• A truth table shows all possible true-false
combinations of the terms
• Since && and || each have two operands, there
are four possible combinations of conditions a
and b

a b a && b a || b
true true true true
true false false true
false true false true
false false false false
Boolean Expressions
• Specific expressions can be evaluated using truth
tables

total < MAX found !found total < MAX && !found
false false true false
false true false false
true false true true
true true false false
Boolean Expressions in C
• C does not have a boolean data type.

• Therefore, C compares the values of variables and


expressions against 0 (zero) to determine if they
are true or false.

• If the value is 0 then the result is implicitly


assumed to be false.

• If the value is different from 0 then the result is


implicitly assumed to be true.

• C++ and Java have boolean data types.


Short-Circuited Operators
• The processing of logical AND and logical OR is
“short-circuited”
• If the left operand is sufficient to determine the
result, the right operand is not evaluated

if (count != 0 && total/count > MAX)


printf ("Testing…");

• This type of processing must be used carefully


• The outcome may be compiler dependent!!!
THE END

You might also like