Пожалуйста, помогите мне понять, почему булев метод, который я написал, не возвращается должным образом. Я прошу пользователя ввести серию целых чисел, которые будут храниться в массиве, который проверяется на наличие дубликатов.
import java.util.Scanner;
public class PokerHands
{
public static void main(String args[])
{
System.out.println(containsPair(welcome()));
} // end main
private static int[] welcome()
{
Scanner read = new Scanner(System.in);
int[] poker_array = new int[5];
System.out.println("Enter five numeric cards, no face cards. Use 2-9: ");
for (int i = 0; i < 5; i++) {
System.out.printf("Card %d: ", i + 1);
int nums = read.nextInt();
while (nums < 2 || nums > 9) {
System.out.println("Wrong input. Choose from 2-9 only: ");
nums = read.nextInt();
} // end while
poker_array[i] = nums;
}
for (int i = 0; i < poker_array.length; i++) {
System.out.print(poker_array[i] + ", ");
}
return poker_array;
} // end welcome()
private static boolean containsPair(int hand[])
{
for (int i = 0; i < hand.length; i++) {
for (int j = 0; j < hand.length; j++) {
if (hand[i] == hand[j]) {
return true;
} // end if
} // end inner for
} // end outer for
return false;
} // end containsPair()
} //end class
Выход:
$ java PokerHands
Введите пять числовых карт, без лицевых карт. Используйте 2-9:
Карта 1: 2
Карта 2: 3
Карта 3: 4
Карта 4: 5
Карта 5: 6
2, 3, 4, 5, 6, правда
$ java PokerHands
Введите пять числовых карт, без лицевых карт. Используйте 2-9:
Карта 1: 2
Карта 2: 2
Карта 3: 3
Карта 4: 4
Карта 5: 5
2, 2, 3, 4, 5, правда
$ java PokerHands
Введите пять числовых карточек, без лицевых карточек. Используйте 2-9:
Карта 1: 2
Карта 2: 2
Карта 3: 2
Карта 4: 2
Карта 5: 2
2, 2, 2, 2, 2, правда