Назначение переменной массива внутри цикла

1

новый для программирования, но пытается назначить мою двойную переменную внутри цикла for. В основном мне нужно использовать Math.abs и Math.sin, которые меня отбрасывают. Любая помощь приветствуется. Если мне нужно предоставить дополнительную информацию, пожалуйста, дайте мне знать.

double[] xValues = new double[arrayAmount];
double[] yValues = new double[arrayAmount];

xValues[0] = minimumValue;

for (int index = 0; index==arrayAmount; index++)
{

    yValues = 20.0 * Math.abs((Math.sin(xValues))); // java saying this is wrong

}
Теги:
arrays
for-loop

4 ответа

2

Вы хотите что-то подобное?

for (int index = 0; index==arrayAmount; index++)
{
   yValues[index] = 20.0 * Math.abs((Math.sin(xValues[index])));
}

Обратите внимание, что вы получаете значение из определенного индекса xValues и сохраняете его при определенном индексе yValues.

Также обратите внимание, что ваши xValues имеют только 1 элемент. Поэтому, если вы указали код больше о значениях или проблемах, мы могли бы помочь вам больше.

Удачи!

1

Синтаксис Java, используемый для доступа к элементу по определенному индексу массива, это:

nameOfArray[index]

поэтому, если вы хотите присвоить значение yValues в определенном индексе, вы должны использовать:

yValues[index] = 20.0 * Math.abs((Math.sin(xValues[index])));

Обратите внимание, что ваш цикл не будет работать, если длина массива равна 0. Попробуйте изменить условие цикла:

for (int index = 0; index < arrayAmount; index++) { ... }

или

for (int index = 0; index < yValues.length; index++) { ... } 
  • 0
    благодарю вас! это действительно помогло. У меня есть еще один быстрый вопрос, если вы могли бы помочь. Мне нужно добавить к xValue введенный пользователем номер каждый раз, когда цикл проходит. Можете ли вы помочь с тем, как кодировать это? Будет ли это "" "" xValues [index] = xValues [index] + increment; «» «»
  • 0
    Вы можете использовать Scanner : объявить объект сканера вне цикла: Scanner sc = new Scanner(System.in); Затем внутри цикла: xValues[index] = sc.nextDouble(); , Вы также можете увидеть этот пост для получения дополнительной информации.
Показать ещё 2 комментария
0

Вам нужно указать индекс для получения/установки определенных значений в массиве.

Если у вас есть:

double[] xValues = ...;

И вы хотите обратиться к double по индексу, скажем, 3:

xValues[3] = ...;
... = xValues[3];

Вам нужно добавить [index] в свои массивы.

Кроме того, кстати, ваше состояние неверно в вашем цикле for. Цикл будет идти до тех пор, пока условие не будет истинным, а не пока условие будет истинным. У тебя есть:

for (int index = 0; index==arrayAmount; index++)

Это говорит о "loop while index == arrayAmount". Вы хотите:

for (int index = 0; index<arrayAmount; index++)
0

массив подобен стойке на полке, каждый из которых имеет блок значений, поэтому вместо

yValues = 20.0 * Math.abs((Math.sin(xValues)));

поместите значение в каждую стойку самостоятельно следующим образом:

yValues[index] = 20.0 * Math.abs((Math.sin(xValues[index])));

теперь java не говорит, что это неправильно

  • 0
    Не забудьте Math.sin(xValues[index]) .
  • 0
    Оппс спасибо @JasonC

Ещё вопросы

Сообщество Overcoder
Наверх
Меню