局部变量未初始化

时间:2019-10-09 20:41:25

标签: java

我是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可能尚未      初始化”,但对于所有三个变量。这些变量应该等于输入的数字,所以我真的不知道该如何解决。

是的,我在顶部import java.util.Scanner;

2 个答案:

答案 0 :(得分:3)

因为您没有为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();

答案 1 :(得分:0)

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

double a = input.nextDouble();

不是

double a;input.nextDouble();

其他变量相同。

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

double a;
input.nextDouble();

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