Linked by Thom Holwerda on Tue 15th Jan 2013 21:24 UTC
Thread beginning with comment 549447
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
Because ? is an operator, not a key word and it doesn't really work in the same way - at least in c#. Plus in Pascal one can have as many segments in the statement as one likes:
if (x = y) then begin do1(); do3(); end else if (x = a) then do2() else begin do4(); end; //3 blocks
if (x = y) then begin do1(); do3(); end else if (x = a) then do2() else begin do4(); if (y = x) then begin do5(); do6(); end else do7(); end; //a 2 block embedded in a 3 block
Obviously, no one would format the code that way - it's just an example.
You can't really implement that using ? without a lot of unreadable complexity.




Member since:
2006-09-02
if (x = y) then dosomthing else dosomthingelse(y);
That is a pure statement, with no semicolon after the first clause. Geddit?
I don't. How is that any different from
(x == y) ? dosomething() : dosomethingelse(y);
?
Maybe it looks a bit more cryptic than its begin/end counterpart if you embed these kind of statements into each other, but not by much. Stacking ternary statements is always ugly and unreadable, regardless of the language used.