C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - Point Out Correct Statements (Q.No. 4)
4.
Which of the following statements are correct about an if-else statements in a C-program?
1: | Every if-else statement can be replaced by an equivalent statements using ?: operators |
2: | Nested if-else statements are allowed. |
3: | Multiple statements in an if block are allowed. |
4: | Multiple statements in an else block are allowed. |
Discussion:
25 comments Page 1 of 3.
Ritesh_iiita said:
1 decade ago
@Gautam && @Madhu:
Yes gautam you are absolutely right I tried this code and it works, here the code is:
#include<stdio.h>
int main()
{
int x=10;
/*if(x>5)
{
printf("this is integer number:\n");
printf("this number is greater than 5\n");
printf("\n");
}
else if(x==5)
{
printf("this is an integer number:\n");
printf("the number is equal to 5:\n");
printf("\n");
}
else
{
printf("number is smaller than 5\n");
printf("\n");
}*/
x>5?(printf("this is integer number:\n"),printf("this number is greater then5\n")):(x==5?(printf("this is an integer number:\n"),
printf("the number is equl to 5:\n")):printf("number is smaller than 5\n"));
return(0);
}
Output:
This is integer number:
This number is greater than 5.
//So again we are at the same place where we started anyone please explain it very clearly.
Yes gautam you are absolutely right I tried this code and it works, here the code is:
#include<stdio.h>
int main()
{
int x=10;
/*if(x>5)
{
printf("this is integer number:\n");
printf("this number is greater than 5\n");
printf("\n");
}
else if(x==5)
{
printf("this is an integer number:\n");
printf("the number is equal to 5:\n");
printf("\n");
}
else
{
printf("number is smaller than 5\n");
printf("\n");
}*/
x>5?(printf("this is integer number:\n"),printf("this number is greater then5\n")):(x==5?(printf("this is an integer number:\n"),
printf("the number is equl to 5:\n")):printf("number is smaller than 5\n"));
return(0);
}
Output:
This is integer number:
This number is greater than 5.
//So again we are at the same place where we started anyone please explain it very clearly.
Madhu said:
1 decade ago
In first option there sholud be a small mistake i.e if else statement we can insert many statements under if and else using {}.
Where as in ?: operation we can insert only one statement after ? and also :
Sample Program:
#include<stdio.h>
int main()
{
int x=10;
if(x>5)
{
printf("this is integer number:");
printf("this number is greater then5");
printf("\n");
}
else if(x==5)
{
printf("this is an integer number:");
printf("the number is equl to 5:");
printf("\n");
}
else
{
printf("number is smaller than 5");
printf("\n");
}
return(0);
}
But in ?: operation we can use only one statement after the ? and :
shown below rather than using many statements in if else statements.....
(x>5)?(printf(x is gtreater than 5")):((x==5)?printf("the number is equal to 5"):printf("the number is smaller than 5:");
Where as in ?: operation we can insert only one statement after ? and also :
Sample Program:
#include<stdio.h>
int main()
{
int x=10;
if(x>5)
{
printf("this is integer number:");
printf("this number is greater then5");
printf("\n");
}
else if(x==5)
{
printf("this is an integer number:");
printf("the number is equl to 5:");
printf("\n");
}
else
{
printf("number is smaller than 5");
printf("\n");
}
return(0);
}
But in ?: operation we can use only one statement after the ? and :
shown below rather than using many statements in if else statements.....
(x>5)?(printf(x is gtreater than 5")):((x==5)?printf("the number is equal to 5"):printf("the number is smaller than 5:");
Vrushabh said:
8 years ago
I think all four options are correct. because we can replace every if-else with ?: even nested ones also.
eg. if(a==5){
if(b==5){
printf("%d",b);
}
else{
printf("%d",b+1);
}
}
else{
printf("%d',a);
}
It can be replaced by.
(a==5)?(b==5?printf("%d",b):printf("%d",b+1)):printf("%d',a);
eg. if(a==5){
if(b==5){
printf("%d",b);
}
else{
printf("%d",b+1);
}
}
else{
printf("%d',a);
}
It can be replaced by.
(a==5)?(b==5?printf("%d",b):printf("%d",b+1)):printf("%d',a);
(4)
Akash said:
1 decade ago
Guys 1st option is wrong because we can not use any loop in that operator but we can use any looping statements in if else.
#include<stdio.h>
int main()
{
int i,a=5;
if(a==5)
{
a==5?for(i=0;i<5;i++){printf("namastey\n");}:printf("error");
}
}
This code will give an error "expression syntax ".
#include<stdio.h>
int main()
{
int i,a=5;
if(a==5)
{
a==5?for(i=0;i<5;i++){printf("namastey\n");}:printf("error");
}
}
This code will give an error "expression syntax ".
Debendra sahoo said:
1 decade ago
Here all options are correct, we can replace if else by conditional operator like:
if(a>b)
printf("hello");
else
printf("India");
Same can be implemented a>b? printf("hello") : printf("India").
Rest all options can be also implemented. So all are correct.
if(a>b)
printf("hello");
else
printf("India");
Same can be implemented a>b? printf("hello") : printf("India").
Rest all options can be also implemented. So all are correct.
Raju royal said:
1 decade ago
Conditional operator can be used for multiple if-else statements..
ex:
using if-else:-
if(x!=40)
if(x<40)
salary=4*x+100;
else
salary=4.5*x+150;
else
salary=300;
Using conditional operator:-
salary=(x!=40)?((x<40)?(4*x+100):(4.5*x+150)):300;
ex:
using if-else:-
if(x!=40)
if(x<40)
salary=4*x+100;
else
salary=4.5*x+150;
else
salary=300;
Using conditional operator:-
salary=(x!=40)?((x<40)?(4*x+100):(4.5*x+150)):300;
Gautam said:
1 decade ago
#include<stdio.h>
int main()
{
int a = 10, b,c;
a >=5 ? (b=100,c=12): (b=200,c=15);
printf("%d %d\n", b,c);
return 0;
}
We may write multiple statements in this way in ?: operator. Then why option 1 is wrong? Please explain.
int main()
{
int a = 10, b,c;
a >=5 ? (b=100,c=12): (b=200,c=15);
printf("%d %d\n", b,c);
return 0;
}
We may write multiple statements in this way in ?: operator. Then why option 1 is wrong? Please explain.
Mayank said:
1 decade ago
Finally we can find only one solution using conditional statement that is to be assigned to its L-value, not more than one result as using if-else,
Ex. if(i==2)
{a=100; b=400; c=300;}
else
{a=0;b=0;c=1}
You can't write any conditional statement.
Ex. if(i==2)
{a=100; b=400; c=300;}
else
{a=0;b=0;c=1}
You can't write any conditional statement.
Vijaykumar b said:
1 decade ago
Option 3. Multiple statements in an if block are allowed - is also correct, because we can execute multiple statements against true value of if (condition) by placing the statements within { and }.
So all the options are correct.
So all the options are correct.
Komal Jain said:
10 years ago
@Akash is right, because this might be the case when we need to use a loop under if else statement, but we can't use looping with conditional operator. Only that is why first option is not correct.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers