2014-12-20 4 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: еслиFalse'. – 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 (! (наименьшее

1
least = least < k ? least : k; 

Это эквивалентно,

if(least < k) 
    least = least; 
else 
    least = k; 
Смежные вопросы