Есть ли способ переключать переменные в для оператора? - PullRequest
2 голосов
/ 19 февраля 2010

Я изучаю Java и использую это для оператора цикла:

for (int i = 0; i <3; i++){ 
...
}

Я хочу переключать цвет заливки при каждом запуске цикла. Я не хочу приводить слишком много примеров, потому что я не ищу ответа на свой конкретный вопрос, но я хочу знать, есть ли способ сделать это?

В основном, каждый нечетный раз, когда цикл выполняется, он делает x, и каждый четный раз, когда он работает, y?

РЕДАКТИРОВАТЬ: после ввода этого я думаю, может быть, я могу сделать оператор if с int i? что-то вроде if i % 2 == 0 {} ?

PS: Я выражаю свое волнение.

Ответы [ 4 ]

5 голосов
/ 19 февраля 2010
for (int i = 0; i < 3; i++) { 
    if(i % 2 == 0) {
        //even, do Y
    } else {
        //odd, do X
    }
}
4 голосов
/ 19 февраля 2010

Добавить мод оператора.Если я% 2 == 0, то сделай что-нибудь для четного, иначе сделай что-нибудь для нечетного.

1 голос
/ 19 февраля 2010

Просто собираюсь для моей микрооптимизации, так что стреляйте в меня значок и полный набор альтернатив этому вопросу:

for(int xa=0; xa<3; xa++) { 
    if((xa&0x1)==0) {
        // even
        }
    else {
        // odd
        }
    }
1 голос
/ 19 февраля 2010

Я не уверен, как компилятор оптимизирует это утверждение, и я знаю, что микрооптимизация - мать всего зла, но вы могли бы использовать логическую переменную для управления своим состоянием:

boolean gray = false;
for(...) {
    if(gray) {
    } else {
    }
    gray != gray;
}

В реальной жизни я бы, вероятно, изменил его на 2, как примеры здесь, но всегда есть альтернативы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...