替换算法

Faw*_*zan 0 java algorithm

for(k = i - 1; k >= 0; k--) {
    if(frame[j] == page[k])
        break;
    least = least < k ? least : k;        
} 
Run Code Online (Sandbox Code Playgroud)

我不明白这句话" least = least < k ? least : k;"

任何人都能为我解释一下

Doo*_*nob 6

它相当于

least = Math.min(least, k);
Run Code Online (Sandbox Code Playgroud)

要么

if (!(least < k)) {
    least = k
}
Run Code Online (Sandbox Code Playgroud)

另请参见:三元运算符上的Java文档(滚动到"条件运算符"部分).

  • 我将是令人难以置信的迂腐,并指出'至少= <k?至少:k;`不等于`if(!(至少<k)){least = k; }`.如果`least`有类型`Integer`那么代码`Integer a = Integer.MIN_VALUE,less = a; int k = 0; 至少= <k?至少:k; System.out.println(最少== a);`生成`false`,就好像你使用`if`版本它产生`true`. (2认同)