Статические методы, возвращать результаты и распечатывать результаты

Я работаю над онлайн-обучением для Java и испытываю трудности с этой концепцией.

Это то, что я пытаюсь сделать. Я близок, но не уверен, что мне не хватает.

Создайте класс MetricConverter с помощью следующих методов (каждый метод получает значение метрики и возвращает соответствующее стандартное значение):

  • kgToLbs (kg: double): double (+ означает общедоступный; требуется параметр double; возвращает значение типа double)
  • kmToMiles (км: двойной): двойной

Создайте приложение MetricConverterTest, которое запускается из следующего меню:

КГ в фунты KM в мили

Итак, я близок, но класс MetricConverter должен содержать только четыре статических метода - ничего больше.

Я могу разобраться в статических методах и возвратах ... но не в том, как отобразить возвращенный результат обратно. Что мне не хватает?

Класс MetricConverterTest должен иметь основной метод, отображающий меню.

Это мой код:

import java.util.Scanner;

public class MetricConverter {
    private static Scanner keyBd = new Scanner(System.in);

    //method if 1 is selected
    public static double menuOption1() {
        double kg = keyBd.nextDouble();
        double lbs = 2.20462*kg;
        return lbs;
    }

    //method if 2 is selected
    public static double menuOption2() {
        System.out.println("Enter the amount of kilometers you wish to convert: ");
        double km = keyBd.nextDouble();
        double miles = 0.621371 *km;
        return miles;
    }

    public static void main(String[] args) {
        char selection;
        do {
            //displays the menu    
            System.out.println("\n\nMainMenu");  
            System.out.println("1. Convert KG to lbs");
            System.out.println("2. Convert kilometers to miles");
            System.out.println("3. Quit");
            System.out.println("Selection: ");

            //get a menu selection
            selection = keyBd.next().charAt(0);

            switch(selection) {
                case '1': menuOption1(); break;
                case '2': menuOption2(); break;
                case '3': break;
                default: System.out.println("Invalid selection!");
            }//end switch
        } while(selection != '3');
    }//end main()
}

что происходит ? какая ошибка?

want2learn 26.10.2018 23:07

Прочтите задание. Он просит вас создать класс MetricConverter с методами два с именами kgToLbs и kmToMiles. В вашем классе есть 3 метода: menuOption1, menuOption2 и main. Вы не соблюдаете ни одну из инструкций в задании.

JB Nizet 26.10.2018 23:09

И вы распечатываете его так же, как распечатываете все остальное: устанавливаете его в переменную (что вы уже знаете, как это сделать) и распечатываете (что вы уже знаете, как это сделать). Непонятно, в чем конкретная проблема.

Dave Newton 26.10.2018 23:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
234
4

Ответы 4

Вы можете распечатать результат каждого метода menuOption

public static double menuOption2() {
    System.out.println("Enter the amount of kilometers you wish to convert: ");
    double km = keyBd.nextDouble();
    double miles = 0.621371 *km;
    System.out.println(String.format("%s", miles));
    return miles;
}

или из заявлений дела

switch(selection) {
    case '1': 
        double result = menuOption1(); 
        System.out.println(String.format("%s", result));
        break;
    case '2': 
        double result = menuOption2(); 
        System.out.println(String.format("%s", result));
        break;
    case '3': break;
    default: System.out.println("Invalid selection!");
}

Вы можете напечатать результат внутри de Switch, как это, также я добавил новую строку, которая запрашивает аргумент.

 switch(selection) {
                case '1': {
                    System.out.println("Fill Kgs to be converted");
                    System.out.println("Result of converting KG to Lbs is : " + menuOption1());
                    break;
                }
                case '2': {
                    System.out.println("Fill Kilometers to be converted");
                    System.out.println("Result of converting Kms to Miles is : " + menuOption2());
                    break;
                }
                case '3': break;
                default: System.out.println("Invalid selection!");
            }//end switch
         case '1': System.out.println("Result "+menuOption1()); break;
         case '2': System.out.println("Result "+menuOption2()); break;
         case '3': break;
         default: System.out.println("Invalid selection!");

Хотя это может ответить на вопрос авторов, в нем отсутствуют некоторые поясняющие слова и / или ссылки на документацию. Фрагменты исходного кода не очень полезны без некоторых фраз. Вы также можете найти как написать хороший ответ очень полезным. Измените свой ответ - Из обзора

Nick 27.10.2018 06:48

Если я хорошо понимаю назначение, оно требует, чтобы вы создали класс Метрический преобразователь с двумя статическими методами в нем и отдельный класс MetricConverterTest с основным методом. Это означало бы, что вам нужно создать пакет для своих классов.

Что касается отображения результата, в вашем основном методе вы вызываете только те методы, которые возвращают тип double, но вы никоим образом не сохраняете и не отображаете их результат. Вам нужно использовать System.out.println( menuOptionX() ); или назначить вывод вашего метода переменной, подобной этой Double result = menuOptionX();, и отображать его в любое время с помощью вышеупомянутого метода.

Другие вопросы по теме