Ошибка: цельсия не может быть преобразована в переменную - PullRequest
1 голос
/ 24 июля 2011

Получение ошибки с помощью следующего кода:

import java.util.Scanner;
public class FahrenheitToCelsius{


 public static void main(String[]args){
    convertFToC();
 }

  /*gets input representing fahrenheit and displays celsius equivalent*/
  public static void convertFToC(){
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter Fahrenheit temperature");
    double fahrenheit = scan.nextInt();            
    System.out.println(fahrenheit + " degrees Fahrenheit is " +
      fMethod(celsius) + " degrees Celsius");
  }


  /* calculates and returns the celsius equivalent */
  public static double toCelsius(double fahr){
    int BASE = 32;
    double CONVERSION_FACTOR = 9.0/ 5.0;
    double celsius = ((fahr-BASE)/(CONVERSION_FACTOR));
    return celsius;
  }
}

Я получаю следующее:

Error: celsius cannot be resolved to a variable

Мне нужно использовать fMethod для вызова toCelsius в System.out.println однако я продолжаю получать эту ошибку.

Ответы [ 7 ]

7 голосов
/ 24 июля 2011

Вы вообще не показали fMethod, но похоже, что вы просто хотите:

System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit)
                   + " degrees Celsius");

Нельзя использовать celsius в main, потому что это локальная переменная в методе toCelsius. Вместо этого вам нужно вызвать этот метод и использовать возвращаемое значение.

4 голосов
/ 24 июля 2011

Вы звоните fMethod, который не существует, и передаете значение celsius, когда я думаю, что вы имели в виду fahrenheit.

Переменная celsius является локальной для toCelsius() и поэтому не может быть разрешена внутри convertFToC().

4 голосов
/ 24 июля 2011
System.out.println(fahrenheit + " degrees Fahrenheit is " + fMethod(celsius) + " degrees Celsius"); //Step 4

должно читаться

System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit) + " degrees Celsius"); //Step 4
3 голосов
/ 24 июля 2011

в методе convertFToC()

Вы получаете fahrenheit от пользователя и звоните fMethod(celsius) Вы должны были позвонить fMethod(farenheit)

Более важно:

Если вы прочитаете сообщение об ошибке компилятора, вы получите не только ошибку, но и имя файла и номер строки.Если вы перейдете к номеру строки, вы увидите переменную celcius из ниоткуда.

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

Научитесь читать и понимать сообщения об ошибках.Они там по причине.

3 голосов
/ 24 июля 2011

Вам нужно вызвать ваш toCelsius(double fahr) метод, например:

System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit) + " degrees Celsius"); // Step 4
2 голосов
/ 24 июля 2011

Вы используете градусы Цельсия здесь:

System.out.println(fahrenheit + " degrees Fahrenheit is " + fMethod(celsius) + " degrees Celsius");

Однако вы объявили цельсию только в toCelsius, и это выходит за рамки.

2 голосов
/ 24 июля 2011

В строке, отмеченной step4 , у вас есть необъявленная переменная с именем celsius.Должно быть fahrenheit возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...