Извините, если я задаю глупый вопрос, давно не практикуюсь с Java ...... Я написал код для имитации таблицы хэшей. Вот одна функция моего кода:Java мертвый код в разных местах
protected int find(K key){
int avail=-1;
int i=hashValue(key);
int j=i;
do{
Entry<K, V> element = bucket[i];
if(element==null){
if(avail<0){
avail=i;
}
break;
}
if(key.equals(element.getK())){
return i; // found
}
if(element==this.used){
if(avail<0){
avail=i;
}
}
i=(i+1)%capa;
}while(i!=j);
return -(avail+1); // return a hash address
}
Странная вещь, когда я изменить, если заявление, если (элемент == NULL) немного назад (в любом месте, но в самом начале структуры), ее затем предупредит меня, что это мертвый код:
protected int find(K key){
int avail=-1;
int i=hashValue(key);
int j=i;
do{
Entry<K, V> element = bucket[i];
if(key.equals(element.getK())){
return i; // found
}
if(element==this.used){
if(avail<0){
avail=i;
}
}
// dead code then
if(element==null){
if(avail<0){
avail=i;
}
break;
}
//dead code then
i=(i+1)%capa;
}while(i!=j);
return -(avail+1); // return a hash address
}
Кто-нибудь знает, в какой части идет не так?
Ответ Эрвина на месте, но только из любопытства, что дает вам обратную связь с мертвым кодом? –