Before
Tuesday, 31 July 2012
Friday, 27 July 2012
The Conditional Operators
The conditional operators ? and : are sometimes called ternary operators since they take three arguments. In fact, they form a kind of foreshortened if-then-else. Their general form is,
expression 1 ? expression 2 : expression 3
What this expression says is: “if expression 1 is true (that is, if its value is non-zero), then the value returned will be expression 2, otherwise the value returned will be expression 3”. Let us understand this with the help of a few examples:
(a) int x, y ;
scanf ( "%d", &x ) ;
y = ( x > 5 ? 3 : 4 ) ;
This statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y.
The equivalent if statement will be,
if ( x > 5 )
y = 3 ;
else
y = 4 ;
(b) char a ;
int y ;
scanf ( "%c", &a ) ;
y = ( a >= 65 && a <= 90 ? 1 : 0 ) ;
Here 1 would be assigned to y if a >=65 && a <=90 evaluates to true, otherwise 0 would be assigned.
The following points may be noted about the conditional operators:
It’s not necessary that the conditional operators should be used only in arithmetic statements. This is illustrated in the following examples:
Ex.: int i ;
scanf ( "%d", &i ) ;
( i == 1 ? printf ( "Amit" ) : printf ( "All and sundry" ) ) ;
Ex.: char a = 'z' ;
printf ( "%c" , ( a >= 'a' ? a : '!' ) ) ;
The conditional operators can be nested as shown below.
int big, a, b, c ;
big = ( a > b ? ( a > c ? 3: 4 ) : ( b > c ? 6: 8 ) ) ;
Check out the following conditional expression:
a > b ? g = a : g = b ;
This will give you an error ‘Lvalue Required’. The error can be overcome by enclosing the statement in the : part within a pair of parenthesis. This is shown below:
a > b ? g = a : ( g = b ) ;
In absence of parentheses the compiler believes that b is being assigned to the result of the expression to the left of second =. Hence it reports an error.
The limitation of the conditional operators is that after the ? or after the : only one C statement can occur. In practice rarely is this the requirement. Therefore, in serious C programming conditional operators aren’t as frequently used as the if-else.
Summary
There are three ways for taking decisions in a program. First way is to use the if-else statement, second way is to use the
78 Let Us C
conditional operators and third way is to use the switch statement.
The default scope of the if statement is only the next statement. So, to execute more than one statement they must be written in a pair of braces.
An if block need not always be associated with an else block. However, an else block is always associated with an if statement.
If the outcome of an if-else ladder is only one of two answers then the ladder should be replaced either with an else-if clause or by logical operators.
&& and || are binary operators, whereas, ! is a unary operator.
In C every test expression is evaluated in terms of zero and non-zero values. A zero value is considered to be false and a non-zero value is considered to be true.
Assignment statements used with conditional operators must be enclosed within a pair of parenthesis.
expression 1 ? expression 2 : expression 3
What this expression says is: “if expression 1 is true (that is, if its value is non-zero), then the value returned will be expression 2, otherwise the value returned will be expression 3”. Let us understand this with the help of a few examples:
(a) int x, y ;
scanf ( "%d", &x ) ;
y = ( x > 5 ? 3 : 4 ) ;
This statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y.
The equivalent if statement will be,
if ( x > 5 )
y = 3 ;
else
y = 4 ;
(b) char a ;
int y ;
scanf ( "%c", &a ) ;
y = ( a >= 65 && a <= 90 ? 1 : 0 ) ;
Here 1 would be assigned to y if a >=65 && a <=90 evaluates to true, otherwise 0 would be assigned.
The following points may be noted about the conditional operators:
It’s not necessary that the conditional operators should be used only in arithmetic statements. This is illustrated in the following examples:
Ex.: int i ;
scanf ( "%d", &i ) ;
( i == 1 ? printf ( "Amit" ) : printf ( "All and sundry" ) ) ;
Ex.: char a = 'z' ;
printf ( "%c" , ( a >= 'a' ? a : '!' ) ) ;
The conditional operators can be nested as shown below.
int big, a, b, c ;
big = ( a > b ? ( a > c ? 3: 4 ) : ( b > c ? 6: 8 ) ) ;
Check out the following conditional expression:
a > b ? g = a : g = b ;
This will give you an error ‘Lvalue Required’. The error can be overcome by enclosing the statement in the : part within a pair of parenthesis. This is shown below:
a > b ? g = a : ( g = b ) ;
In absence of parentheses the compiler believes that b is being assigned to the result of the expression to the left of second =. Hence it reports an error.
The limitation of the conditional operators is that after the ? or after the : only one C statement can occur. In practice rarely is this the requirement. Therefore, in serious C programming conditional operators aren’t as frequently used as the if-else.
Summary
There are three ways for taking decisions in a program. First way is to use the if-else statement, second way is to use the
78 Let Us C
conditional operators and third way is to use the switch statement.
The default scope of the if statement is only the next statement. So, to execute more than one statement they must be written in a pair of braces.
An if block need not always be associated with an else block. However, an else block is always associated with an if statement.
If the outcome of an if-else ladder is only one of two answers then the ladder should be replaced either with an else-if clause or by logical operators.
&& and || are binary operators, whereas, ! is a unary operator.
In C every test expression is evaluated in terms of zero and non-zero values. A zero value is considered to be false and a non-zero value is considered to be true.
Assignment statements used with conditional operators must be enclosed within a pair of parenthesis.
Friday, 20 July 2012
The First C Program:
Hello World
Code:
#include<conio.h>
#include<stdio.h>
void
main()
{
clrscr();
printf("Hello
Friends Lets start Programming");
getch();
}
Screen
Short:
Output:
This is the
basic program of C which we have created
Here :
Clrscr() is used for
clear the screen.
Printf() is used as output the string.
Getch() is used for
keeping stable the output.
Subscribe to:
Posts (Atom)