Проблема здесь:
private static boolean validatePlayer(char upper, char players[]){
for(int i = 0; i < players.length; i ++){
if(upper != players[i]){
return true;
}
}
return false;
}
Когда players.length == 0
, for loop
никогда не будет выполнено.И вы всегда получаете false
.
Также представьте, что ваш players
содержит 'a'
и 'b'
и вы звоните validatePlayer('b', players)
:
1. for loop will get first element. `players[0]` -> 'a'
2. Compare 'b' != 'a' -> true
3. Return true.
validatePlayer('b', players)
возвращает true, даже если у него есть 'b'
.
Я рекомендую вам изменить метод следующим образом:
private static boolean validatePlayer(char upper, char players[]){
for(int i = 0; i < players.length; i ++){
if(upper == players[i]){ //equal
return false; //false
}
}
return true; //true
}
Проверьте, содержит ли char, в противном случае верните true.