因此,对于一个项目,我正在开发这个程序。它的目的是获取用户的输入并用它来转换测量值。我收到这些错误:
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");
}
这一定是一些简单的事情,我只是错过了,对吧?
最佳答案
您需要将此变量声明为实例变量,以便可以在所有类方法中访问。
我认为您已经在主方法或类方法之一中声明了这些变量,因此您需要将它们移到方法之外。
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");
}
}
关于java - 声明变量,编译器找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618229/