有人可以打破这个循环吗?我不确定怎么样?和:工作

时间:2016-03-31 14:17:18

标签: java loops

for(int i = 0; i < (this.width > this.height ? this.width : this.height); i++)

我知道它与if else语句有关。如果不使用这种类型的for循环,我怎么能编码呢?

3 个答案:

答案 0 :(得分:3)

这是ternary operation,相当于找到widthheight的最大数量。您可以使用Math.max(int, int)之类的

for(int i = 0; i < Math.max(this.width, this.height); i++)

答案 1 :(得分:1)

它的简短(但不是非常易读)形式:

int limit;
if(this.width > this.height)
  limit = this.width;
} else {
  limit = this.height;
}
for(int i = 0; i < limit; i++)

答案 2 :(得分:0)

我假设你不确定这个意思,这就是所谓的三元操作

(this.width > this.height ? this.width : this.height)

如果它比它高,那就好了,如果然后使用宽度,如果不是那么使用高度。

你'不能在这个操作中使用for循环,但它只是明确地避免for循环并且不比你那里更简单。在这种情况下,它只是试图找到2个值中的最大值,您可以使用Math.max计算出最大的维度,如下所示

for(int i = 0; i < Math.max(this.width,this.height); i++){
    //your code
}