У меня есть проблема, которая считывает N
числа из командной строки, и я хочу проверить, все ли эти числа одинаковы.
это мой код
class q2 {
public static boolean check(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
for (int j = 1; j < arr.length; j++) {
if (arr[i]==arr[j]) return false;
}
}
return true;
}
public static void main(String[] args) {
int[] arr = new int[args.length];
boolean result = check(arr);
System.out.println(result);
}
}
но в любом случае (но вообще без ввода) он возвращает false, и я не знаю, где ошибка.
Если вы передаете значения из командной строки, вам нужно добавить эти значения в массив, который вы передадите в метод check
:
public static void main(String[] args) {
int[] arr = new int[args.length];
for(int i = 0; i < arr.length; i++){
arr[i] = Integer.parseInt(args[i]);
}
boolean result = check(arr);
System.out.println(result);
}
Вы можете упростить свой метод check
, например. вам не нужна двойная петля. Просто сравните текущий элемент со следующим, как показано ниже:
public static boolean check(int[] arr) {
for (int i =0;i<arr.length-1;i++)
if (arr[i] != arr[i + 1])
return true;
return false;
}