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 2 of 3.
Ummul said:
10 years ago
Option D is correct. Since there are some if statements which do not have any else part and they cannot be converted into ?: So 3 conditions are fulfilled but first condition is not fulfilled.
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.
Arun Kumar said:
1 decade ago
Can we multiple else statements?
If so which else statement will be executed in case failure of if statement?
If so which else statement will be executed in case failure of if 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.
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 ".
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.
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.
Vimal Dahduk said:
1 decade ago
@Madhu.
You are right for this case but many case like (return X) in if condition so ?: is not allowed if condition only.
You are right for this case but many case like (return X) in if condition so ?: is not allowed if condition only.
Sudheer s said:
1 decade ago
Friends here only only if - else can be replaced by ternary operator but not more than one it is wrong so there he specified more than one if-else.
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.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers