133k views
1 vote
What is wrong, logically, with the following code?if (x > 10) System.out.println("Large");else if (x > 6 && x <= 10) System.out.println("Medium");else if (x > 3 && x <= 6) System.out.println("Small");else System.out.println("Very small");

A) There is no logical error, but there is no need to have (x <= 10) in the second conditional or (x <= 6) in the third conditional
B) There is no logical error, but there is no need to have (x > 6) in the second conditional or (x > 3) in the third conditional
C) The logical error is that no matter what value x is, "Very small" is always printed out
D) The logical error is that no matter what value x is, "Large" is always printed out

User Kabira  K
by
5.1k points

1 Answer

3 votes

Answer:

Option A is the correct answer for the above question.

Step-by-step explanation:

  • The above code checks the value of the x and print ("Large" for the value of 'x' which is greater than '10'), ("medium" for the value of x which is smaller than or equal to 10 and greater than 6), ("small" for the value of 'x' which is smaller than or equal to 6 and greater than 3) and ("Very small" for the value of 'x' which is less than or equal to 3.
  • The if-else statement has the property that if the if condition is false then it goes on the else statement or else-if statement.
  • The above code firstly checks for the if statement, then for the first else-if, then for the second else-if, then for the else statement.
  • So when the, if-statement gets false which, means that the value of x is less than or equal to 10. So there is no need to check this on the first else-if statement by the help of "x<=10" condition.
  • And when the first else if the statement is getting false, then it is understood that the value of x is less than or equal to 6, so there is no need to put the condition "x<=6" in the second else-if statement.
  • So the above code is true but there is no needs to have "x<=10" and "x<=6" statement in an else-if statement.
  • And This is states from option A. Hence Option A is the correct answer while the other option is not correct because they state that statement which is necessary for the above code.
User Timur Mustafaev
by
4.9k points