Java 有没有办法在for语句中切换变量?
我正在学习Java,并使用这个for语句进行循环:Java 有没有办法在for语句中切换变量?,java,Java,我正在学习Java,并使用这个for语句进行循环: for (int i = 0; i <3; i++){ ... } for(int i=0;i添加一个mod运算符。如果i%2==0,则对偶数执行某些操作,否则对奇数执行某些操作。for(int i=0;i
for (int i = 0; i <3; i++){
...
}
for(int i=0;i添加一个mod运算符。如果i%2==0,则对偶数执行某些操作,否则对奇数执行某些操作。for(int i=0;i<3;i++){
for (int i = 0; i < 3; i++) {
if(i % 2 == 0) {
//even, do Y
} else {
//odd, do X
}
}
如果(i%2==0){
//即使如此,你也会这样做吗
}否则{
//奇数,dox
}
}
我不确定编译器如何优化该语句,我知道微优化是万恶之母,但您可以使用布尔变量来控制您的状态:
boolean gray = false;
for(...) {
if(gray) {
} else {
}
gray != gray;
}
在现实生活中,我可能会将其修改为2,正如本文中的示例所示,但总有替代方案。只是为了我的微优化,所以拍摄我的徽章,并为这个问题提供一整套替代方案:
for(int xa=0; xa<3; xa++) {
if((xa&0x1)==0) {
// even
}
else {
// odd
}
}
for(int-xa=0;xaI相信是这样。)祝您的编码愉快!我真的很喜欢您的答案。以前从未想过这一点,但是,当然,如果最后一位是1,则它是奇数,否则它是偶数。FWIW:微优化被认为是“根”但是,尽管如此,我认为对常见的习惯用法进行推理,并养成在其他方面相同的情况下使用最有可能提供最佳性能的习惯,是将黑客与真正优秀的程序员区分开来的东西。只是我的2c。对于这一点,使用相对昂贵的当然,除非编译器找出((x%2)==0)
(或==1
)并将其转换为我的答案。这里有一个关于检查字符串是否为空的问题,所有的答案都涉及到修剪字符串和检查其长度。不久前,我检查了StringUtils.isBlank的源代码(来自Commons Lang),他们不修剪字符串,而是从开始到结束检查字符串中是否有空格以外的内容。修剪方法可能会这样做并返回一个新字符串,这样做可以防止创建新对象。