This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes The Conditional Operator ?: Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "The Conditional Operator ?:" Watch "The Conditional Operator ?:" New topic
Author

The Conditional Operator ?:

md ali
Greenhorn

Joined: Sep 06, 2001
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
Muhammad Ali
Valentin Crettaz
Gold Digger
Sheriff

Joined: Aug 26, 2001
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


SCJP 5, SCJD, SCBCD, SCWCD, SCDJWS, IBM XML
[Blog] [Blogroll] [My Reviews] My Linked In
Valentin Crettaz
Gold Digger
Sheriff

Joined: Aug 26, 2001
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

Joined: Sep 06, 2001
Posts: 25
Thankyou very much.
Muhammad Ali
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: The Conditional Operator ?:
 
Similar Threads
Khalid's Question
Wrappers
wrapper class doubt
Dan's Tests | Question from 'Conditional Operator'
compare the contents of tow arrays