новый для программирования, но пытается назначить мою двойную переменную внутри цикла 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
}
Вы хотите что-то подобное?
for (int index = 0; index==arrayAmount; index++)
{
yValues[index] = 20.0 * Math.abs((Math.sin(xValues[index])));
}
Обратите внимание, что вы получаете значение из определенного индекса xValues и сохраняете его при определенном индексе yValues.
Также обратите внимание, что ваши xValues имеют только 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++) { ... }
Вам нужно указать индекс для получения/установки определенных значений в массиве.
Если у вас есть:
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++)
массив подобен стойке на полке, каждый из которых имеет блок значений, поэтому вместо
yValues = 20.0 * Math.abs((Math.sin(xValues)));
поместите значение в каждую стойку самостоятельно следующим образом:
yValues[index] = 20.0 * Math.abs((Math.sin(xValues[index])));
теперь java не говорит, что это неправильно
Math.sin(xValues[index])
.
Scanner
: объявить объект сканера вне цикла:Scanner sc = new Scanner(System.in);
Затем внутри цикла:xValues[index] = sc.nextDouble();
, Вы также можете увидеть этот пост для получения дополнительной информации.