C Programming - Control Instructions - Discussion

Discussion Forum : Control Instructions - Point Out Errors (Q.No. 5)
5.
Which of the following errors would be reported by the compiler on compiling the program given below?
#include<stdio.h>
int main()
{
    int a = 5;
    switch(a)
    {
	case 1:
	printf("First");

	case 2:
	printf("Second");

	case 3 + 2:
	printf("Third");

	case 5:
	printf("Final");
	break;

    }
    return 0;
}
There is no break statement in each case.
Expression as in case 3 + 2 is not allowed.
Duplicate case case 5:
No error will be reported.
Answer: Option
Explanation:

Because, case 3 + 2: and case 5: have the same constant value 5.

Discussion:
18 comments Page 2 of 2.

Ranjith karthick said:   1 decade ago
I have an doubt in switch usage of operator is allowed or not. Can any one explain?

Dhruv said:   10 years ago
What will case 3/2: be evaluated as? Can anyone help?

Mohit bansal said:   10 years ago
#include<stdio.h>
int main()
{
int x=3,y,z;
y=x=10;
z=x<10;
printf("x=%d y=%d z=%d\n",x,y,z);
return 0;
}

The output is x = 10, y = 10, z = 0.

Please explain?

Venky said:   10 years ago
I compiled it. And I got it error.

So the options are wrong. Also no duplicates should be present in switch.

Amrita said:   9 years ago
@Mohit bansal.

I compiled it. Got the output as mentioned by you mohit.

Explanation:

y=x=10 means the values of x and y have been assigned as 10.

Now,
Z = x<10.

Means, value of z has been assigned as the same as x( here it is 10 from previous line).
But z is not <10. z is =10(since x is 10).

Thus the condition is false and so it returned a value 0. If the condition was true, then the compiler would return a value of 1 and the output would be x=10, y=10, z=1.

This is like a rule.

Vishalakshi said:   9 years ago
Thank you @Amrita.

Ravi said:   6 years ago
Arithmetic operation is allowed in switch case or not?

i.e case (arithmetic operation).

Pradeep said:   3 years ago
In the switch case, no duplicate case will be allowed.

Am I right?


Post your comments here:

Your comments will be displayed after verification.