Java 加班计划的麻烦
我想我都做对了,但是我有个错误。非常困惑。 错误:加班。java:10:错误:可变薪酬可能尚未初始化 显示结果(支付) 代码:Java 加班计划的麻烦,java,Java,我想我都做对了,但是我有个错误。非常困惑。 错误:加班。java:10:错误:可变薪酬可能尚未初始化 显示结果(支付) 代码: import java.util.Scanner; public class Overtime { public static void main(String[] args) { int hours; double rate, pay; Scanner in = new Scanner(System.i
import java.util.Scanner;
public class Overtime {
public static void main(String[] args) {
int hours;
double rate, pay;
Scanner in = new Scanner(System.in);
displayResults(pay);
System.out.println();
System.out.print( "Enter how many hours worked: " );
hours = in.nextInt();
System.out.print( "Enter hourly rate: " );
rate = in.nextDouble();
}
public double calculatePay( int hours, double rate, double pay ) {
if ( hours > 40 ) {
int extraHours = hours - 40;
pay = ( 40 * rate ) + ( extraHours * rate * 1.5);
} else
pay = hours * rate;
return pay;
}
public static void displayResults(double pay) {
System.out.printf( "\nGross Salary: %f", pay);
}
}
main
中的代码必须重新排序:
public static void main(String[] args) {
int hours;
double rate, pay;
Scanner in = new Scanner(System.in);
System.out.print( "Enter how many hours worked: " );
hours = in.nextInt();
System.out.print( "Enter hourly rate: " );
rate = in.nextDouble();
pay = ;// call calculatePay here
displayResults(pay);
}
您必须删除calculatePay
方法的pay
参数。它的声明应该是
public static double calculatePay( int hours, double rate )
出现此错误的原因是您没有为变量
pay
指定任何值,并且调用了一个方法displayResults()
,该方法需要此变量作为参数。首先,您应该使用calculatePay
计算pay
值(但是您应该从传递给此方法的参数列表中删除double pay
,因为不需要将它放在那里)
使用calculatePay()
进行计算并将其结果放入pay
变量后,您可以毫无问题地调用displayResults()
另一个问题是,
calculatePay()
需要使静态
和这两个方法都应该在main()方法体之外声明(我回答的粗体部分不再相关,因为外观不好的缩进让我有点困惑,我认为方法是在main()中声明的)
方法) 这看起来有点像家庭作业。因此,Iam仅提供指导:
祝你好运!:-) 在将
pay
设置为值之前,请调用displayResults(pay)
;这真是一团糟。应用适当的缩进以使其更易于阅读。请遵循Java命名约定;类名称应始终使用PascalCase.double pay=0;(快速修复)按照你告诉我的做了,我现在得到了这个错误:超时。java:15:error:非静态方法calculatePay(int,double,double)不能从静态context@unattainable啊,是的,最后一个“bug”,让它静止,编辑answer@unattainable错误提示您没有从方法中删除最后一个参数(第二个双参数)。