if (x%2!=0){
result[0]=Arrays.copyOfRange(array,0,x/2+1);
result[1]=Arrays.copyOfRange(array,x/2+1,x);
}else //При отсутствии второго IF прога работает не правильно
result[0]=Arrays.copyOfRange(array,0,x/2);
result[1]=Arrays.copyOfRange(array,x/2,x);
При таком написании выдаёт результат:
Не чётный массив [[1, 2, 3, 4, 5, 6], [6, 7, 8, 9, 10, 11]].
Чётный массив [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
Т.е. в любом случае одинаковое количество символов, пока не пропишешь второй оператор IF.
В предыдущей задаче такой проблемы не было.
Ruslan
28 уровень
Подскажите плиз принцип работы. Не могу сообразить.
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
10 июня 2021, 10:06
Скобки после else?
0
Ruslan
10 июня 2021, 12:57
Доброго времени суток =) с фигурными скобками после else(без if) тоже работает(спасибо за подсказку) как нужно. Я не могу сообразить почему задача не работает нормально при данном написании. Когда в предыдущей задаче "Заполнение массива " такой вид написания работал как надо.
*
Заполняем массив
*/
public class Solution {
public static int[] array = new int[20];
public static int valueStart = 10;
public static int valueEnd = 13;
public static void main(String[] args) {
int x=array.length;
if (array.length%2==0){
Arrays.fill(array,0,x/2,valueStart);
Arrays.fill(array,x/2,x,valueEnd);
}else
Arrays.fill(array,0,x/2+1,valueStart);
Arrays.fill(array,x/2+1,x,valueEnd);
System.out.println(Arrays.toString(array));
}
}
0
Ksenia Volkova Java Developer в DXC Master
10 июня 2021, 13:04
Ты понимаешь, зачем вообще нужны фигурные скобки?
Этот код с точки зрения компилятора выглядит так:
Что там у тебя было в другой задаче - это надо смотреть код другой задачи. 0