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.
1 and 2
2 and 3
1, 2 and 4
2, 3, 4
Answer: Option
Explanation:
No answer description is available. Let's discuss.
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?

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.

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 ".

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.

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.

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.

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.


Post your comments here:

Your comments will be displayed after verification.