Operation at & ldquo; Get and AND & rdquo; Boolean variable in Java

advertisements

Is it possible in Java to use syntax like (i++, ++i) for boolean logic operators?

I have a boolean variable that is true only for the first iteration of a foreach loop. That iteration has to be skipeed.

Full syntax is

for (...)
{
    if (bool)
    {
        bool &= false;
        continue;
    }
}

I wonder if there is any way to shorten the syntax without using AtomicBoolean. For example construct if (bool &= false) is syntactically correct but I think it will compare the final result and not the original value.

Google is not my friend because the search query is misleading


Personally I would simplify your current code to:

for (...)
{
    if (bool)
    {
        bool = false;
        continue;
    }
    // Rest of code
}

... but if you really want to do it in the if condition as a side-effect, you could use:

for (...)
{
    if (bool && !(bool = false))
    {
        continue;
    }
    // Rest of code
}

Here the first operand of the && operator covers subsequent operations, and !(bool = false) will always evaluate to true and set bool to false.

Another option, from comments:

for (...)
{
    if (bool | (bool = false))
    {
        continue;
    }
    // Rest of code
}

This performs the assignment on each iteration, but it still gives the right result each time.

I really, really wouldn't use either of these last two options though.