2014-12-20 61 views
0
for(k = i - 1; k >= 0; k--) { 
    if(frame[j] == page[k]) 
     break; 
    least = least < k ? least : k;   
} 

我不明白这条线 “least = least < k ? least : k;替换算法

任何一个可以解释这对我

+2

这是一个三元运算符:'条件? ifTrue:ifFalse'。 – fge

+0

请在这里阅读有关条件运算符的Java信息:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html –

回答

6

这相当于

least = Math.min(least, k); 

if (!(least < k)) { 
    least = k 
} 

另请参阅:the Java documentation on the ternary operator(滚动到“条件运算符”部分)。

+2

我将难以置信地迂腐,并指出“最少=最少” k?最少:k;'不完全等同于'if(!(least

1
least = least < k ? least : k; 

这相当于,

if(least < k) 
    least = least; 
else 
    least = k;