基本的java参数传递,方法内部的计算



我已经初始化了一个变量值和一个输入值。。netbeans给了我错误。。有人能指出我的代码的问题吗

public class JavaApplication1 {
    /**
     * @param args the command line arguments
     */
        static Scanner sc = new Scanner(System.in);
        static double maxLoad = 500;
        static double currLoad;
        static double loadInput = 0;
    public static void main(String[] args) {
        String cpNumber;

        System.out.println("Enter Cellphone Number");
        cpNumber = sc.nextLine();
        System.out.println("Enter load to be bought");
        loadInput = sc.nextDouble();
        computeLoad(maxLoad, loadInput);
        System.out.println(currLoad);
    }
    public static double computeLoad(double x, double y) {
        double z = 0;
        x - y = z;
    return z;
    }
}

我又犯了一个错误。它一直返回0.

您的代码有几个问题:

1) 分配变量时,将变量放在左边,表达式放在右边

2) 当前,computeLoad的返回值被忽略。即使修复了要编译的函数,它也不会起作用,因为打印的currLoad将保持初始化为默认值。

你有两个选项来解决这个问题:

  • 将呼叫更改为currLoad = computeLoad(maxLoad, loadInput);,或
  • computeLoad更改为void,并在那里分配currLoad

应该是:

public static double computeLoad(double x, double y) {
        return x- y;
    }
x - y = z;

这是错误的。赋值必须从左到右。类似:z = x - y;

x - y = z;不是有效的Java语句。赋值运算符(=)计算右操作数(可以是任何类型的表达式、方法调用、文字等),并将其赋值给左操作数(必须是标识符)。

CCD_ 10是正确的。

您不能这样做:x - y = z

因为任务是从右向左的。z = x - y

您的代码应该如下:

public static double computeLoad(double x, double y) {
    double z = 0;
    z = x - y;
    return z;
}

最新更新