programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering OS Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# The Conditional Operator ?:

md ali
Greenhorn
Posts: 25
Hi All,
I am unable to read this statement written using ? operator.
a = b ? c ? d : e ? f : g : h ? i : j ? k : l ;
If any one can tell me whihc is true part of which and which is false part. To me this statement seems look like this.
if b is true then we go the true part and that is that we check c that if c is true. And if it is true then we finish at d by reutring the value of d.
But what if b is false what will be returned.
And now if we find b true, then c false and e false then we eand up at g. Can someone explain me what wil the case theat we will reach at k or l. Or if some one can write an algorithmic form of this expression.
Regards

Valentin Crettaz
Gold Digger
Sheriff
Posts: 7610
Hi,
the statement is to be read like follows,
a = (b ? (c ? d : (e ? f : g)) : (h ? i : (j ? k : l)));
See JLS 15.24
Val

Valentin Crettaz
Gold Digger
Sheriff
Posts: 7610
Sorry, i submitted too quickly...
a = (b ? (c ? d : (e ? f : g)) : (h ? i : (j ? k : l)));
1. if b is true then we evaluate (c ? d : (e ? f : g)) (the first part) else the second part (h ? i : (j ? k : l))
2. the same for each part:
if b is true and c is true then a=d
if b is true and c is false and e is true then a=f
if b is true and c is false and e is false then a=g
if b is false and h is true then a=i
if b is false and h is false and j is true then a=k
if b is false and h is false and j is false then a=l
Hope it helps,
Val

md ali
Greenhorn
Posts: 25
Thankyou very much.