У меня проблема, я получаю предупреждение «Мертвого кода» в Eclipse, и я действительно не знаю, почему. Код из моего проекта Connect Four, точнее, из класса, который проверяет, выиграл ли кто-то. Этот метод проверяет все возможности горизонтального выигрыша для красного. Код выглядит следующим образом:Откуда берется мертвый код?
/**
* Method to check the horizontal winning possibilities for red
* @return true if red won or false if not
*/
public boolean checkHorRed(){
for(int line = 0; line < 6; line++) {
for(int column = 0; column < 4; column++) { //column++ is underlined and causes the "dead Code" warning
if(gw.buttons[line][column].getIcon().equals(gw.red));
if(gw.buttons[line][column+1].getIcon().equals(gw.red));
if(gw.buttons[line][column+2].getIcon().equals(gw.red));
if(gw.buttons[line][column+3].getIcon().equals(gw.red));
return true;
}
}
return false;
}
Игра даже вызвана тем, что ее сразу выиграли из-за этого метода. Что странно в том, что все остальные методы в классе, которые выглядят почти одинаково, не создают никаких проблем. Вот метод, который проверяет возможности вертикального выигрыша для желтого, для сравнения:
/**
* Method to check the vertical winning possibilities for yellow
* @return true or false
*/
public boolean checkVertYel(){
for(int line = 3; line < 6; line++) {
for(int column = 0; column < 7; column++) {
if(gw.buttons[line][column].getIcon().equals(gw.yellow))
if(gw.buttons[line-1][column].getIcon().equals(gw.yellow))
if(gw.buttons[line-2][column].getIcon().equals(gw.yellow))
if(gw.buttons[line-3][column].getIcon().equals(gw.yellow))
return true;
}
}
return false;
}
Это не вызывает никаких проблем. Может ли кто-нибудь сказать мне, откуда появляется предупреждение? Если вам нужна дополнительная информация, сообщите мне.
Как стоит все эти 'if's ничего не делать, потому что у вас есть', 'после каждого из них. Это означает, что ваш внутренний цикл 'for' ** всегда ** возвращает true на первой итерации, что означает, что' column ++ 'никогда не будет достигнуто. Вот почему вы всегда должны использовать '{}', даже с помощью простых циклов/ifs. – JonK
Вы должны подумать об использовании оператора '&&' в своих 'if'statements. – jhamon