#java #arrays
#java #массивы
Вопрос:
public static double getDistance(int position) {
double distance[] = {64, 63.3, 109, 87.9, 81.2, 73.9, 70.5, 107};
double distanceInKM = 0;
int index = 0;
for(int i = 0; i < distance.length; i ) {
if(position == distance[i]) {
distanceInKM = distance[i] * 1.60934;
}
}
return distanceInKM;
}
Предполагается, что приведенный выше код принимает позицию int, сравнивает ее со значениями в массиве и, основываясь на позиции, преобразует значение в заданной позиции в километры, используя приведенное выше преобразование. Я запутался в том, как заставить позицию работать с индексом массива, а не только со значениями напрямую.
Я изучил использование indexOf , но это совсем не помогает (я пробовал делать Arrays.asList(distance).indexOf(distance[i]) вместо просто distance[i], это не сработало).
Я запутался в том, как сначала сравнить позицию с индексами массива, а затем получить значение по этому индексу и выполнить вычисления по нему. Любая помощь приветствуется.
Правильный пример запуска будет:
getDistance(2) -> 109 * 1.60934 = 175.42…
Комментарии:
1. Вы имеете в виду, что хотите просто изменить
distance[position]
? для этого вам не нужен цикл.
Ответ №1:
Думаю, вы напрямую вызываете индекс, а не сравниваете его. Просто не забудьте проверить длину. Как показано ниже :
public static double getDistance(int position) {
double distance[] = {64, 63.3, 109, 87.9, 81.2, 73.9, 70.5, 107};
double distanceInKM = 0;
if(position < distance.length) {
distanceInKM = distance[position] * 1.60934;
}
return distanceInKM;
}
Комментарии:
1. Большое вам спасибо, я не знаю, почему я так сильно боролся с этим…