局部变量未初始化

问题描述 投票:-1回答:2

好吧,我是Java的超级菜鸟,刚刚开始。这是我当前的代码

public class MathWork {
public static void main(String[]args) {
    System.out.println("Enter 3 numbers below for A, B and C");
    Scanner input = new Scanner(System.in);
    System.out.println("Enter A: ");
    double a;input.nextDouble();
    System.out.println("Enter B: ");
    double b;input.nextDouble();
    System.out.println("Enter C: ");
    double c;input.nextDouble();

    System.out.println("X = "+(a+b+c));
    System.out.println("Fuel = ");
    System.out.println("Mean = ");
    System.out.println("Aint = ");
    System.out.println("geo = ");







input.close();  
}

}

[当我尝试运行此命令时,对于X的打印语句会出现错误,提示“本地变量a可能尚未已初始化”,但对于所有三个变量。这些变量应该等于输入的数字,所以我真的不知道如何解决这个问题。同样是的,我已经导入了java.util.Scanner;在顶部

java
2个回答
0
投票

因为没有分配任何内容给abc

有两种方法将用户输入的值分配给变量。首先:

double a = input.nextDouble();

第二个是:

double a = 0;
a = input.nextDouble();

所以您的代码成为:

System.out.println("Enter A: ");
double a = input.nextDouble();
System.out.println("Enter B: ");
double b = input.nextDouble();
System.out.println("Enter C: ");
double c = input.nextDouble();

0
投票

您的代码中有错字。应该是

double a = input.nextDouble();

不是

double a;input.nextDouble();

与其他变量相同。

现在您有两个声明。很容易看出我们是否在分号后放置换行符:

double a;
input.nextDouble();

意味着您创建了一个变量double a,但没有值,然后读取了一个双值,但不要将其放在任何地方。它只是直接进入垃圾箱。