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