Beautiful Code: Is there a better way of writing v = (v == 0? 1 : 0);(stackoverflow.com)
stackoverflow.com
Beautiful Code: Is there a better way of writing v = (v == 0? 1 : 0);
http://stackoverflow.com/questions/6911235/is-there-a-better-way-of-writing-v-v-0-1-0
8 comments
If you insist on one line
if (v>0) v=0; else v=1;
Otherwise if(v>0)
v=0;
else
v=1;
Some of us prize readability over neat tricks. I think there are a 100 ways most of these answers could be misinterpreted by people. Code is read more than it is written, and programs rarely work better because you wrote it slightly more "impressively". Modern compilers do much of this sort of stuff that they are doing in this thread, but they do it in a repeatable manner which future programmers don't have to puzzle out.v = !v - if toggling between true | false
Are you just toggling between 1 and 0?
Why not v = 1 - v?
Why not v = 1 - v?
[deleted]
v ^= 1 in Ruby should work.
v = v || 1;
Long version: There are a number of ways which are lexically shorter, do the same thing only assuming that v is already either 0 or 1, are not self-documenting, and perform worse or marginally better at best. Only a very tortured definition would call any of these things "better".
Although v = v ? 0 : 1 isn't that bad.