Java 我的变量没有正确初始化
在我下面的代码中,Java 我的变量没有正确初始化,java,variables,Java,Variables,在我下面的代码中,double getAirSpeeddouble calcPatternwidth和double calcPatternLength未正确初始化,为什么 /** * holding patterns * assignment 1 * question 2 **/ import java.util.Scanner; public class StockiColeA1Q2 { public static void main(String []args)
double getAirSpeed
double calcPatternwidth
和double calcPatternLength
未正确初始化,为什么
/**
* holding patterns
* assignment 1
* question 2
**/
import java.util.Scanner;
public class StockiColeA1Q2 {
public static void main(String []args) {
Scanner keyboard = new Scanner(System.in);
double getAirSpeed ;
double calcPatternWidth;
double calcPatternLength;
System.out.println("That speed is " + getAirSpeed +
"\nHolding pattern width: " + calcPatternWidth +
"kms\nHolding pattern length: " + calcPatternLength + "kms");
}//main
public static double getAirSpeed() {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the speed in Knots: ");
double knots = keyboard.nextDouble(); //knots given by user
return knots*1.852;
}//get air speed
public static double calcPatternWidth(double knots) {
return (knots/60*Math.PI)*2;
}//patern width
public static double calcPatternLength(double knots) {
return knots/60 + (knots/60*Math.PI)*2;
}//pattern width
}//class
在这里,我无法看到您在哪里初始化给定的变量。由于这三个变量都是main方法的局部变量,所以编译器不会将默认值分配给它们。仅仅创建这些变量的getter不会赋值。如果在类中的main方法外创建变量,编译器将分配defaut值,但您必须使它们成为静态的,因为main方法是静态的,并且您不能在静态块中使用非静态变量。您没有正确初始化main中的变量。您可以显示调用函数并预先分配它们,然后显示它们。我想你要找的是一个
main
,看起来像这样:
public static void main(String[] args) {
double getAirSpeed = getAirSpeed();
double calcPatternWidth = calcPatternWidth(getAirSpeed);
double calcPatternLength = calcPatternLength(getAirSpeed);
System.out.println("That speed is " + getAirSpeed + "\nHolding pattern width: " + calcPatternWidth
+ "kms\nHolding pattern length: " + calcPatternLength + "kms");
}// main
上述代码使用getAirSpeed
作为calcPatternWidth
和calcPatternLength
的参数。我猜这就是你想要实现的
您确实应该在完成后关闭扫描仪对象,因此我将修改getAirSpeed()
以在返回之前调用keyboard.close()
public static double getAirSpeed() {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the speed in Knots: ");
double knots = keyboard.nextDouble(); // knots given by user
keyboard.close();
return knots * 1.852;
}// get air speed
问题是什么?预期产量是多少?有什么错误吗?请在问题正文(不是标题)中澄清。另外,在你的问题中添加标记,特别是代码的语言。你声明它们,然后不做任何事情。这就是你的答案:如果你想从中得到什么,你必须首先让你的代码做到这一点。