变量声明,编译器找不到符号

时间:2014-03-24 18:58:07

标签: java

因此,对于我正在研究这个项目的项目。它旨在从用户那里获取输入并使用它来转换测量值。我收到了这些错误:

ConversionWilson.java:69: error: cannot find symbol
  kilometers = meters * 0.001;
  ^
symbol:   variable kilometers
location: class ConversionWilson
ConversionWilson.java:70: error: cannot find symbol
  System.out.println(meters + " meters converted to kilometers becomes: " + kilometers + "km");
                                                                            ^
symbol:   variable kilometers
location: class ConversionWilson
ConversionWilson.java:75: error: cannot find symbol
  inches = meters * 39.37;
  ^
symbol:   variable inches
location: class ConversionWilson
ConversionWilson.java:76: error: cannot find symbol
  System.out.println(meters + " meters converted to inches becomes: " + inches + "in");
                                                                        ^
symbol:   variable inches
location: class ConversionWilson
ConversionWilson.java:81: error: cannot find symbol
  feet = meters * 3.281;
  ^
symbol:   variable feet
location: class ConversionWilson
ConversionWilson.java:82: error: cannot find symbol
  System.out.println(meters + " meters converted to feet becomes: " + feet + "ft");
                                                                      ^
symbol:   variable feet
location: class ConversionWilson
ConversionWilson.java:87: error: cannot find symbol
 switch (conversion)
         ^
symbol:   variable conversion
location: class ConversionWilson
ConversionWilson.java:90: error: cannot find symbol
        showKilometers(meters);
                       ^
symbol:   variable meters
location: class ConversionWilson
ConversionWilson.java:94: error: cannot find symbol
        showInches(meters);
                   ^
symbol:   variable meters
location: class ConversionWilson
ConversionWilson.java:98: error: cannot find symbol
        showFeet(meters);
                 ^
symbol:   variable meters
location: class ConversionWilson
10 errors

我声明了所有变量。不确定到底出了什么问题。

double meters; // Distance as set by the user.
String input; // Input by the user.
char conversion; // Code for the type of conversion.
double kilometers; // The kilometers from the conversion.
double inches; // The inches from the conversion.
double feet; // The feet from the conversion.

// Scanner object to read input
Scanner keyboard = new Scanner (System.in);
// Prompt the user for distance and conversion.
System.out.println("Welcome to the Conversion Program.");
System.out.println("With this program, you can enter a distance and convert it to another form of measurement.");
System.out.print("Please enter the distance in meters: ");

if (meters >= 0)
{
   meters = keyboard.nextDouble();
}
else
{
   System.out.println("Meters cannot be a negative number. Please choose a positive number.");
}

System.out.print("Please enter the number of the conversion you want to make: \n" +
                 "1. Convert to Kilometers \n" + "2. Convert to Inches \n" + "3. Convert to Feet \n" +
                 "4. Quit Program");
input = keyboard.nextLine();
conversion = input.charAt(0);

// Deciding what conversion method to call.

switch (conversion)
{
  case '1':
     showKilometers(meters);
     break;

  case '2':
     showInches(meters);
     break;

  case '3':
     showFeet(meters);
     break;

  case '4':
     System.out.println("Beep boop bop. Quitting the program now. Later.");
     break;

  default:
     System.out.println("You did not select a possible choice. Please run the program again and be sure to choose a correct number.");
 }         
}            
public static void showKilometers(double meters)
{
   kilometers = meters * 0.001;
   System.out.println(meters + " meters converted to kilometers becomes: " + kilometers + "km");
}

public static void showInches(double meters)
{
   inches = meters * 39.37;
   System.out.println(meters + " meters converted to inches becomes: " + inches + "in");
}

public static void showFeet(double meters)
{
   feet = meters * 3.281;
   System.out.println(meters + " meters converted to feet becomes: " + feet + "ft");
}

一定是简单的我只是错过了吗?

1 个答案:

答案 0 :(得分:0)

您需要将此变量声明为实例变量,以便在所有类方法中都可以访问。

我认为您已经在main方法或类方法中声明了这些变量,因此您需要将它们移出方法。

public class MyClass {

    private double meters; // Distance as set by the user.
    private String input; // Input by the user.
    private char conversion; // Code for the type of conversion.
    private double kilometers; // The kilometers from the conversion.
    private double inches; // The inches from the conversion.
    private double feet; // The feet from the conversion.

    public static void showKilometers(double meters)
    {
       kilometers = meters * 0.001;
       System.out.println(meters + " meters converted to kilometers becomes: " + kilometers + "km");
    }
}
相关问题