java: looping on the two boolean values (false, true)

boolean, java, loops

Solution

Since it's two lines, I'd just skip the loop and do:

doStuffBasedOnABooleanFlag(false);
doStuffBasedOnABooleanFlag(true);

Less code, more obvious, more efficient.

Problem

This is a stylistic question. I want to loop twice with a variable `on` which is set to false, then to true. Which of these is clearer: A) ``` for (final boolean on : new boolean[] { false, true} ) { doStuffBasedOnABooleanFlag(on); } ``` B) ``` for (int i = 0; i < 2; ++i) { final boolean on = (i == 1); doStuffBasedOnABooleanFlag(on); } ``` C) something else edit: Murphy's law of unintended interpretations comes into play... the use case I have originally looked something like this instead of doStuffBasedOnABooleanFlag: ``` for (final boolean on : new boolean[] { false, true} ) { JButton button = on ? onButton : offButton; button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { doStuffLaterBasedOnABooleanFlag(on); } } } ``` But I think I like Brendan's answer, I'll just refactor the loop contents into a separate method: ``` doStuffBasedOnABooleanFlag(false); doStuffBasedOnABooleanFlag(true); ... private void doStuffBasedOnABooleanFlag(final boolean on) { JButton button = on ? onButton : offButton; button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { doStuffLaterBasedOnABooleanFlag(on); } } } ```

Original source