Переключатель и методы

Я пытаюсь сделать преобразователь температуры, используя разные методы. Сейчас я немного застрял. Я создаю переключатель в методе, который имеет char, double и еще один char в качестве параметров, и эти 3 представляют собой преобразование температуры, саму фактическую температуру и температуру, в которую пользователь хочет преобразовать. Я пытался создать этот переключатель, но пока мне не повезло. Может быть, я недостаточно ясно выражаюсь. Извини!! Я думаю, что очевидно сказать, что я новичок, и это домашнее задание. Я не прошу получить весь код, просто пара советов, чтобы снова вернуться в нужное русло. Большое спасибо! :-)

Это метод, в котором я хочу переключиться, но мне нужна информация из другого метода, который я опубликую ниже этого.

public static double convertTemp( char uFrom, double temp, char uTo ){          

}

Этот метод будет выполнять фактическое преобразование из градусов Цельсия в кельвины или фаренгейты.

public static double convFromCelsius( double value, char unitTo ){


}

Еще раз большое спасибо!

Вот что я получил до сих пор.

импортировать java.util.Scanner;

класс mainAssignment{

// Main Method
public static void main( String[] args ){

    char   scaleFrom = ' '; // From which temperature scale to convert from
    char   scaleTo   = ' '; // To which temperature scale to convert to 

    double tempFrom  = 0.0; // Temperature value to be converted
    double tempTo    = 0.0; // Temperature value converted 
    double result    = 0.0; // Result of the conversion 

    // Loop to repeat the menu until option chosen is "x"
    //  do {

        /* 
            Method to display the menu and store the scale from 
                which the temperature will be converted from
        */
        scaleFrom = displayMenu(scaleFrom);

        /* 
            Only asks user to input more information, 
            if scaleFrom is different than "x" ( x = Exit )
        */
        //if ( scaleFrom != 'x' ){

            /* 
                Method to get the temperature value to be 
                    converted and store the value entered by user
            */
            tempFrom = getTemp(tempFrom);

            /* 
                Method to get the scale to which the 
                    temperature value will be converted to
            */
            scaleTo = getUnitTo(scaleTo);

            // Method to convert the Temperature
            //result = convertTemp( scaleFrom, tempFrom, scaleTo );

            // Method to display the conversion to the screen
            //displayResult( scaleFrom, tempFrom, scaleTo, result );

        //}
    //} while ( scaleFrom != 'x' );
}

// Method to invoke the conversion of the temperature
public static double convertTemp( char uFrom, double temp, char uTo ){







}

//  Method to convert temperatures in Celsius to the other ones
public static double convFromCelsius( double value, char unitTo ){


}




//  Method to convert temperatures in Fahrenheit to the other ones
//public static double convFromFahrenheit( double value, char unitTo ){

    // body of the Method

//}return;




//  Method to convert temperatures in Kelvin to the other ones
//public static double convFromKelvin( double value, char unitTo ){

    // body of the Method

//}return;

public static char displayMenu (char scaleFrom){

    Scanner ui = new Scanner (System.in);

    System.out.println ("");
    System.out.println ("============================");
    System.out.println ("   Temperature Conversion");
    System.out.println ("=========== MENU ===========");
    System.out.println ("");
    System.out.println ("a. From Celsius");
    System.out.println ("b. From Fahrenheit");
    System.out.println ("c. From Kelvin");
    System.out.println ("");
    System.out.println ("x. Exit");
    System.out.println ("");
    System.out.println ("============================");
    System.out.println ("Enter an option: ");
    System.out.println ("");

    scaleFrom = ui.nextLine().charAt(0);
    return scaleFrom;
}

public static double getTemp (double getTemp){

    Scanner ui = new Scanner (System.in);

    System.out.println ("");
    System.out.println ("Please, enter the temperature you want to convert: ");
    System.out.println ("");

    getTemp = Double.parseDouble(ui.nextLine());    

    return getTemp;
}

public static char getUnitTo (char scaleTo){

    Scanner ui = new Scanner (System.in);

    System.out.println ("");
    System.out.println ("Please, choose the temperature you want to convert to:");
    System.out.println ("");
    System.out.println ("C = To Celsius  K = To Kelvin  F = To Fahrenheit");
    System.out.println ("");

    scaleTo = ui.nextLine().charAt(0);
    return scaleTo;
}

}//Конец основного задания класса//


person Juancho    schedule 07.12.2013    source источник
comment
Зачем вообще нужна переменная temp? Преобразование в и из градусов Цельсия, Фаренгейта и Кельвина — это хорошо определенные формулы.   -  person Hunter McMillen    schedule 07.12.2013
comment
Пожалуйста, предоставьте пример ввода и вывода методов.   -  person skiwi    schedule 07.12.2013
comment
Извините, но я не слежу за вами. Не могли бы вы быть немного более конкретным? Ваше здоровье.   -  person Juancho    schedule 07.12.2013
comment
Где switch? Вы его вообще пробовали?   -  person Miserable Variable    schedule 07.12.2013
comment
Нет, в том-то и дело. Я не понял, как сделать переход. Ваше здоровье.   -  person Juancho    schedule 07.12.2013


Ответы (1)


Я думаю, вы хотите что-то вроде:

public static double convertTemp( char uFrom, double temp, char uTo ){          
    switch (uFrom) {
        case 'c':
            return convertFromCelsius(temp, uTo);
        case 'f':
            return convertFromFahrenheit(temp, uTo);
        case 'k':
            return convertFromKelvin(temp, uTo);
        default:
            System.out.println("Unexpected unit");
            return 0;
    }
}

public static double convFromCelsius( double value, char unitTo ){
    switch (unitTo) {
        case 'f':
            // Code to convert from c to f
            return value + 30;
        case 'k':
            // Code to convert from c to k
            return value + 273;
        default:
            System.out.println("Unexpcted unit");
            return 0;
    }
}
person Henri Lapierre    schedule 07.12.2013