有没有办法在for语句中切换变量?

时间:2010-02-19 05:01:28

标签: java

我正在学习Java,并使用for语句进行循环:

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

我想在每次循环运行时切换填充颜色。我不想提供太多的例子,因为我不是在寻找我的具体问题的答案,但我想知道是否有办法做到这一点?

基本上evey循环运行奇数时间,它会运行x,每运行一次,它会运行吗?

编辑:输入后,我想也许我可以用int i做一个if语句?像if i % 2 == 0 {}之类的东西 ?

PS:我在此表达我的兴奋。

4 个答案:

答案 0 :(得分:5)

for (int i = 0; i < 3; i++) { 
    if(i % 2 == 0) {
        //even, do Y
    } else {
        //odd, do X
    }
}

答案 1 :(得分:4)

添加mod运算符。如果i%2 == 0那么为偶数做一些事情,否则为奇数做点什么。

答案 2 :(得分:1)

我不确定编译器如何优化该语句,我知道微优化是所有邪恶的母亲,但你可以使用布尔变量来控制你的状态:

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

在现实生活中,我可能会用2来修改它,就像这里的例子一样,但总有其他选择。

答案 3 :(得分:1)

只是为了我的微优化,所以拍我徽章,以及这个问题的一整套替代方案:

for(int xa=0; xa<3; xa++) { 
    if((xa&0x1)==0) {
        // even
        }
    else {
        // odd
        }
    }