Conditional expressions
This presentation is the property of its rightful owner.
Sponsored Links
1 / 12

Conditional Expressions PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on
  • Presentation posted in: General

Conditional Expressions. Control Statements. A control statement will or will not be executed based on the value of the conditional expression. scanf("%d", &pressureValue); while (pressureValue <= MAX_PRESSURE) { if (pressureValue == NOMINAL_VALUE)

Download Presentation

Conditional Expressions

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Conditional expressions

Conditional Expressions


Control statements

Control Statements

A control statement will or will not be executed based on the value

of the conditional expression

scanf("%d", &pressureValue);

while(pressureValue <= MAX_PRESSURE)

{

if(pressureValue == NOMINAL_VALUE)

printf("Pressure is nominal\n");

else

printf("Pressure is %d pounds\n", pressureValue);

for (i = 5; i <= pressureValue; i = i + 10)

printf("+");

printf("\n");

scanf("%d", &pressureValue);

} // End while


Boolean type

Boolean Type

  • A conditional expression evaluates to a value of true or false

  • These are the two values for the Boolean type named after the mathematician George Boole

  • When a conditional expression is evaluated, it results in a value of type Boolean

  • In the C programming language there is no explicit Boolean type. Instead, false is 0 and true is any non-zero value. Many C programs use a #define macro to set a Boolean variable to true or false

    #define FALSE 0

    #define TRUE 1

  • Conditional expressions are also called Boolean expressions

  • A conditional expression is used whenever a true or false decision needs to be made about the value of certain variables or constants in a program


Expression contents

Expression Contents

  • A conditional expression in C may contain any valid mathematical expression

  • It may also contain relational operators and logical operators

  • In addition, it may contain one or more function calls that return a value


Relational operators

Relational Operators

==,!=Equivalent, Not equivalent

<, <=Less than, Less than or equals

>, >=Greater than, Greater than or equals

if (A == B) C = 5;

if (A != B) C = 10;

for (i = 0; i < MAX_INDEX; i++) printf("*");

if (A <= B) D = 20;

while (A > B) B++;

if (A >= B) D = 40;

A = B <= C;

D = A == B;


Logical operators

Logical Operators

&&Logical AND

||Logical OR

!Logical NOT

if ( (A == B) && (C <= D) ) E = 5;

if ( (A != B) || (C >= D) ) F = 10;

while ( !(A == B) ) B++;

if ( !((A >= B) && (C <= D) || (E != F)))

G = 100;

A = B || C;

D = A && B;


Boolean algebra

Boolean Algebra

  • NOT false = true

  • NOT true = false

  • true AND true = true

  • true AND false = false

  • true OR true = true

  • true OR false = true

  • false AND false = false

  • false OR false = false

if (0 || 0) printf("Does false OR false = true?");

if (0 && 0) printf("Does false AND false = true?");


More examples

More Examples

ch1 = 'a';

ch2 = 'a';

printf("ch1 OR ch2 = %d\n", ch1 || ch2); // 1

printf("ch1 AND ch2 = %d\n", ch1 && ch2); // 1

ch1 = 'd';

ch2 = 'f';

printf("ch1 OR ch2 = %d\n", ch1 || ch2); // 1

printf("ch1 AND ch2 = %d\n", ch1 && ch2); // 1

ch1 = 'a';

ch2 = '\0';

printf("ch1 OR ch2 = %d\n", ch1 || ch2); // 1

printf("ch1 AND ch2 = %d\n", ch1 && ch2); // 0


Example with logical and relational operators

Example with Logical and Relational Operators

while ( (w <= x) && ( y >= z) )

{

if ( (w < MAX_HEIGHT) || (y > MAX_DISTANCE) )

{

w = w + newHeight;

y = y - newDistance;

newValuesUsed = TRUE;

}

else

{

w = w + oldHeight;

y = y - oldDistance;

newValuesUsed = FALSE;

} // End if

if ( !silentMode ) // Use of negative logic

printf("Height: %d Distance: &d\n", w, y);

} // End while


Operator precedence

Operator Precedence

  • Precedence refers to the order in which operations are evaluated in an expressiona = w * x + !y || -u – v && b % c / d++;

  • There is a hierarchy of rules that tells which operators are evaluated before other operators (i.e., unary before binary operators, multiplication before addition, relational operators before logical operators)

  • The highest precedence goes to parentheses

Rule of thumb: Avoid complicated

expressions and use parentheses


Special notes

Special Notes

  • Avoid complicated conditional expressions, especially

    • When they are not a part of the original procedural design

    • When they are created just to get the program to finally run

  • Use meaningful names for Boolean variables and declare them of type int

    • Ex. valueFound, errorStatus, moreData

  • Do not compare Boolean variables to TRUE or FALSE

    if (valueFound == TRUE) X = 5; // Bad practice

    if (valueFound) X = 5; // Good practice

    if (valueFound == FALSE) X = 5; // Bad practice

    if (!valueFound) X = 5; // Good practice


Special notes continued

Special Notes (continued)

  • Beware of the bitwise operators; they are not the same as the logical operators

    &bitwise AND

    |bitwise OR

    if (4 & 2) printf("Is this true?"); // Bitwise

    if (4 && 2) printf("Or is this true?"); // Logical

  • Do not user == or != operator with values of type float

    double v = 0.999999999999999999999999999;

    . . .

    if (v == ZERO) X = 10; // Bad

    if ((v >= -0.001) && (v <= 0.001)) x = 10; // Good


  • Login