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

基本java参数传递,方法内部的计算,java,Java,我已经初始化了一个变量值和一个输入值。。netbeans给了我错误。。谁能指出我代码的问题吗 public class JavaApplication1 { /** * @param args the command line arguments */ static Scanner sc = new Scanner(System.in); static double maxLoad = 500; static doub

我已经初始化了一个变量值和一个输入值。。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..

它应该是:

public static double computeLoad(double x, double y) {
        return x- y;
    }
这是错误的。作业必须从左到右
比如:
z=x-y

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


z=x-y是正确的。

您的代码有几个问题:

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

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

您有两个选项可以修复此问题:

  • 将调用更改为
    currLoad=computeLoad(maxLoad,loadInput),或
  • computeLoad
    更改为
    void
    ,并在此处分配
    currLoad
    • 您不能这样做:
      x-y=z

      因为作业是从右向左进行的。
      z=x-y

      您的代码应如下所示:

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

      x-y=z赋值从右到左。
      x-y=z无效分配写入为
      z=x-y它修复了它。但为什么当我通过记事本编码并通过cmd编译时,它可以工作,但不能与netbeans一起工作?
      
      public static double computeLoad(double x, double y) {
          double z = 0;
          z = x - y;
          return z;
      }