#java #arrays #for-loop
Вопрос:
У меня есть массив с [25, -6, 14, 7, 100]. Ожидаемый результат составляет
Sum: = 140
Difference: = -90
Product: = -147000
В принципе, следующий элемент вычитается/добавляется к текущему элементу при циклическом выполнении. Эта сумма и продукт просты, так как мне нужно только сделать
for (int i = 0; i < array.length; i ) {
System.out.println(" => " array[I]);
sum = i;
product *= i;
}
Проблема в том , что когда я это делаю difference -= i
, это дает мне -108
, а это неправильно. И когда в массиве есть только один элемент, это дает мне отрицательную форму элемента. например
String[] array = [32] // outputs -32
Я попытался пройтись по коду, как:
for (int i = 0; i < arrayNumbers.length; i ) {
System.out.println(arrayNumbers[i] - arrayNumbers[i 1]);
}
и это дает мне Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
Ответ №1:
вы основываете свой расчет на индексе, в то время как вы должны основывать его на массиве[индекс]
var sum=0;
var difference=0;
var product=1;
for (int i = 0; i < array.length; i ) {
System.out.println(" => " i);
sum = array[i];
if (i ==0)
difference =array[i];
else
difference-=array[i];
product *= array[i];
}
Комментарии:
1. я не понял, почему вы подчеркнули мой ответ . ваш ответ не даст вам такого результата 🙂
2. извини, что это был не я. и спасибо, это тоже сработало
3. ах да, есть ошибка, когда в массиве есть два последовательных отрицательных числа, например
{-4,-3}
, выходные-1
данные . должно быть-7
Ответ №2:
НАШЕЛ ОТВЕТ
int[] array = {25, -6, 14, 7, 100}
int sum = 0;
int product = 1;
int difference = 0;
for (int i = 0; i < array.length; i ) {
System.out.println(" => " array[i]);
sum = i;
product *= I;
if (i == 0)
difference = i;
else
difference -= i;
}
Комментарии:
1. ну что ж, стоит попробовать
Ответ №3:
Это исключение «Исключение в потоке «основной» java.lang.Исключение ArrayIndexOutOfBoundsException: Индекс 1 выходит за пределы длины 1″ связано с тем,что whin i=arrayNumbers.length-1, затем в коде:
номера массивов[i 1] дают исключение при доступе к номерам массивов[arrayNumbers.length];