Работаем с элементами массива
Реализуй метод main(String[]), который меняет знак элемента массива array на противоположный, если значение этого элемента чётное.
package com.javarush.task.pro.task05.task0503;
/*
Работаем с элементами массива
*/
public class Solution {
public static int[] array = new int[]{-1, 2, 3, -4, -5};
public static void main(String[] args) {
for (int i = 0; i < array.length; i++) {
if (i % 2 == 1) {
array[i] = -1 * array[i];
}
}
//напишите тут ваш код
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
}
}
Почему красивое и лаконичное решение задачи через for не проходит, а дурацкое и огромное через if для каждого элемента массива это круто и правильно?
Tallahassee
18 уровень
Собственно вопрос для самых умных разработчиков Java Rush.
Решен
Комментарии (13)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Philipp Nikitaev
22 мая 2021, 08:42
Вот так работает:
for (int i = 0; i < array.length; i++)
if (array[i] % 2 == 0) {
array[i] *= -1;
}
0
Tallahassee
23 мая 2021, 15:19
валидатор не засчитывал такое решение
0
Philipp Nikitaev
21 мая 2021, 18:56
то есть можно написать:
array[i] = -i;
И с помощью унарного минуса меняем знак значения i на противоположный, верно?
Но тогда:
for (int i = 0; i < array.length; i++)
if (array[i] % 2 == 0) {
array[i] = -i;
}
Выводит значения:
-1
-1
3
-3
-5
Что не верно! Не могу понять, почему?
0
Tallahassee
21 мая 2021, 21:43
Через if для каждого элемента сделай и всё заработает, а почему он не принимает решение через for ну наверное потому что таким образом меняется знак индекса массива, а не элемента как нужно по условию задачи.
0
Jh-007
11 мая 2021, 02:22полезный
так можно не писать, есть унарный оператор -, которые меняет знак выражения.
+1
Tallahassee
11 мая 2021, 16:19
Вы правы, тут я запарился немного. Перемудрил )
0
Aleksey
4 июля 2021, 13:05
унарный оператор это array *= -1 ???
0
Tallahassee
4 июля 2021, 20:59
*=
0
Waumok Backend Developer
10 мая 2021, 19:46
то что делает ваш код, это у элементов с нечетным индексом
в них меняет знак
т.е. вы 2 и -4 - поменяли знаки у них
0
Waumok Backend Developer
10 мая 2021, 19:54решение
вам нужно было не индекс проверять на нечетность а значение
валидатор может проверять другим масивом, а не тем который в условии дан
+3
Tallahassee
11 мая 2021, 16:17
Признаю свою ошибку, индекс и элемент массива вещи разные.
Теперь всё понятно!
Спасибо Бэтман.
0
Waumok Backend Developer
11 мая 2021, 16:28
не за что, Талахаси)) не помню какие "твинки", тебе нравятся, но побольше их тебе))
+2
Waumok Backend Developer
10 мая 2021, 19:45
в чем соль задания?
0