基本java参数传递,方法内部的计算
我已经初始化了一个变量值和一个输入值。。netbeans给了我错误。。谁能指出我代码的问题吗基本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
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;
}