Sarwar Morshed American International University-Bangladesh (AIUB)
08/27/20 Sarwar Morshed 1
THE % FORMAT SPECIFIERS The % Specifiers that you can use in ANSI C are:
08/27/20 Sarwar Morshed 2
Relational and Equality operators In actuality, expressions like “5 > 3” are evaluated to integer values: 1 for true, 0 for false. Thus the program void main() { printf( "Result of 1 > 2: %d\n", 1 > 2 ); printf( "Result of 6 < 8: %d\n", 6 < 8 ); } Has Output?
08/27/20 Sarwar Morshed 3
Relational Opeators Relational operators: >, >=, <, <= Equality operators: ==, != IMPORTANT ‘==’ (two equals) versus ‘=’ (one equal) is an extremely common source of programmer errors in C. One equal, =, is an assignment operator.
08/27/20 Sarwar Morshed 4
Relational or conditional operators: == means 'is equal to' != means 'is not equal to' < means 'is less than' > means 'is greater than' <= means 'is less than or equal to' >= means 'is greater than or equal to‘ Logical Operators: && means 'AND' || means 'OR' ! means 'NOT‘ Note: Result of the condition is always wither true(1) or false(0) 08/27/20 Sarwar Morshed 5 Logical Operators &&, || (logical AND, logical OR) are binary operators: Takes two arguments. expression1 && expression2 evaluates to 1 (“true”) if both expressions are non-zero, otherwise evaluates to 0 (“false”).
expression1 || expression2 evaluates to 1 (“true”) if either or
both expressions are non-zero, otherwise evaluates to 0 (“false”).
!expression evaluates to 1 (“true”) if the expression is zero,
otherwise evaluates to 0 (“false”).
08/27/20 Sarwar Morshed 6
Of course, instead of using only numeric constants, we can use any valid expression, including variables. Suppose that a=2, b=3 and c=6,
(a == 5) // evaluates to false since a is not equal to 5.
(a*b >= c) // evaluates to true since (2*3 >= 6) is true. (b+4 > a*c) // evaluates to false since (3+4 > 2*6) is false. ((b=2) == a) // evaluates to true.
08/27/20 Sarwar Morshed 7
The If Statement if (condition) { statement; } Multiple statement within If if (condition) { statement 1; statement 2; -----------; statement n; } 08/27/20 Sarwar Morshed 8 The if else statement if (condition) { statement 1; statement 2; } else { statement 1; statement 2; }
08/27/20 Sarwar Morshed 9
The if-else if-else statement if (condition) { statement . . . ; } else if (condition) { statement . . .; } else { statement . . .; } 08/27/20 Sarwar Morshed 10 08/27/20 Sarwar Morshed 11 Example Example. if ( ( year % 4 == 0 && year % 100 != 0 ) ||( year % 400 == 0) ) { printf( "%d is a leap year\n", year ); } else { printf( "%d is not a leap year\n", year ); } 08/27/20 Sarwar Morshed 12 Example void main() { int num; printf( "Please enter a positive integer:\n" ); scanf( "%d", &num ); if (num % 3 == 0) printf( "%d is divisible by 3.\n", num ); else if (num % 2 == 0) printf( "%d is divisible by 2, but not 3.\n", num ); else printf( "%d is not divisible by 3 nor 2.\n",num ); }
08/27/20 Sarwar Morshed 13
More on ‘if’ if executes the statement (or statement block) after it when the specified condition is non-zero. Thus, the following fragment prints ???? if( 18 ) printf( "Hi!\n" ); if( 0 ) printf( "Bye.\n" );
08/27/20 Sarwar Morshed 14
Exercise What does the following fragment do? int a; printf( "Enter a number:" ); scanf( "%d", &a ); if( a = 3 ) printf( "You typed 3.\n" ); What does the following fragment do? int a=4; if( a == 3 ); printf( “a is 3.\n" );
08/27/20 Sarwar Morshed 15
Conditional Expressions Consider the following code: if (a < 13) b = 3; else b = 18; C has a construct that lets you encapsulate the choice as part of the expression assigned to the variable b. The following code is equivalent: b = (a < 13) ? 3 : 18; 08/27/20 Sarwar Morshed 16 Conditional Expressions Examples:-
08/27/20 Sarwar Morshed 17
switch statement Similar to a chain of if/else statements, but more restricted in terms of functionality. Useful when one wants to branch based on the value of an expression.
The objective of switch statement is to check several
possible constant values for an expression. Its form/syntax is the following:
08/27/20 Sarwar Morshed 18
THE SELECTIVE STRUCTURE: switch switch( expression ) { case constant1: statement1; [break;] case constant2: statement2; [break;] ... default: statement; [break;] } 08/27/20 Sarwar Morshed 19 Flow Chart of Switch-Case Statement
08/27/20 Sarwar Morshed 20
Switch Expression
08/27/20 Sarwar Morshed 21
The fall-through property Missing break switch( num ) { case 1: printf( "Behind Door 1 is nothing.\n" ); case 2: printf( "Behind Door 2 is a goat.\n" ); break; case 3: printf( "Behind Door 3 is a pot of gold.\n" ); break; } 08/27/20 Sarwar Morshed 22 switch example switch( month ) { case 1: case 3: case 5: case 7:case 8: case 10: case 12: printf( "31 days.\n" ); break; case 2: printf( "28 or 29 days.\n" ); break; default: printf( "30 days.\n" ); }