The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+9 votes

In the following Pascal program segment, what is the value of X after the execution of the program segment?

X := -10; Y := 20;
If X > Y then if X < 0 then X := abs(X) else X := 2*X;
  1. $10$
  2. $-20$
  3. $-10$
  4. None
asked in Algorithms by Veteran (59.5k points)
edited by | 564 views

1 Answer

+21 votes
Best answer

Answer of $X$ remains unchanged. As the if condition becomes false.

X := -10

Answer is C . This is classic example of $if-else$ issue. Always $else$ matches for nesting to the closest $if$  in $C$ Programming & Pascal .

if (x>y)
   if (x<0)
answered by Boss (42.8k points)
edited by
else matches to closest if in all languages?
For sure in C & Pascal ! We don't get any other languages in GATE !
But here x < y i.e.  -10 < 20
Yes you seem correct. Updated.
When having confusion, always try to match else with last unmatched if condition.

This is usually the solution the compiler follows for dangling else problem during compilation of a program.

Reference: Ullman for compilers

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

39,750 questions
46,765 answers
58,517 users