Вопрос:
Шагомер рассматривает ходьбу 2000 шагов как ходьбу 1 милю. Напишите программу, входными данными которой является количество шагов, а выходными данными - пройденные мили.
Выведите каждое значение с плавающей запятой с двумя цифрами после десятичной запятой, что может быть достигнуто следующим образом: System.out.printf ("%. 2f", вашеЗначение);
ввод: 5345 выход: 2.67
Код:
import java.util.Scanner;
public class LabProgram {
/* Define your method here */
double stepsToMiles(int userSteps) {
double stepsPerMile = 2000;
double milesWalked = 0;
milesWalked = userSteps/stepsPerMile;
return milesWalked;
}
public static void main(String[] args) {
/* Type your code here. */
int userSteps = 0;
Scanner scnr = new Scanner(System.in);
userSteps = scnr.nextInt();
System.out.printf("%.2f", stepsToMiles(userSteps));
}
}
Ошибка: LabProgram.java:18: ошибка: на нестатический метод stepsToMiles (int) нельзя ссылаться из статического контекста System.out.printf ("%. 2f", stepsToMiles (userSteps));
Я не уверен, что это мне говорит, пожалуйста, помогите.
Отвечает ли это на ваш вопрос? На нестатическую переменную нельзя ссылаться из статического контекста
этот открытый класс LabPrograms установлен по умолчанию в онлайн-книге Zybooks, и я не думал, что он имеет какое-либо отношение к построенному мной методу, а затем к коду для вызова этого метода.
Я думаю, что это помогает, поэтому, если я сделаю метод public static double stepsToMiles ... я думаю, это сработает - я пойду посмотрю, сработает ли это.
да, спасибо, что помог мне прояснить это @HenryTwist
Я бы рекомендовал изучить, что такое статические методы и какие классы есть в Java. Проблема здесь в том, что вам нужен экземпляр LabProgram для вызова любых методов на нем.