gpt4 book ai didi

java - 整数初始化和方法错误

转载 作者:行者123 更新时间:2023-12-01 23:50:47 25 4
gpt4 key购买 nike

我在处理以下问题时遇到了问题...我已经删除了代码中不重要的部分,因此它不会那么令人困惑。所有其他符号/变量均已定义和/或初始化。

基本上我想做的是:

numsalchange 是一个单独的方法,它在循环中确定 indsaldif 数组中的值是否为 0。如果是,则当然会递增更改。

更改稍后将发送到要显示的报告方法。我尝试了几种不同的方法,其中的值肯定等于 0,也可能不等于 0。但是,每次更改都会输出为 0,而我知道它肯定应该是其他值。

我尝试将更改声明为

int change;

然后在方法中将其设置为零,但它不会让我在未在 main 中初始化的情况下将其发送到方法。

我有一种感觉,它在报告方法中显示为 0,因为它被初始化为零,并以 0 而不是更新后的值发送到报告。

public static void main blah(String[] args){

int change = 0;
numsalchange (userinput, change, indsaldif);
report (userinput, oldsalary, newsal, indsaldif, change);


public static void numsalchange(String[] userinput, int change, double[] indsaldif){



for ( int i=0; i<userinput.length; i++){

if(indsaldif[i] != 0){
change++;}}}
public static void report(String[] userinput, double[] oldsalary, double[] newsal, double[] indsaldif, int change){

DecimalFormat twoDigits = new DecimalFormat("0.00");
double saldiff = 0;
for( double i : indsaldif) {
saldiff += i;
}
String toString;
StringBuilder sb = new StringBuilder(64);
sb.append("PB Incorporated Salary Report \n");
for (int i = 0; i < userinput.length; i++) {
sb.append("---------- \nEmployee:"+ userinput[i] + "\nOld Salary: $"+ twoDigits.format(oldsalary[i]) + "\nNew Salary: $" + twoDigits.format(newsal[i]) + "\nSalary Change: $" + twoDigits.format(indsaldif[i])+"\n");
//**
}
sb.append("---------- \nTotal Employee Salary Increase: $" + twoDigits.format(saldiff) + "\n# of Salary Increases: " + change);
JOptionPane.showMessageDialog(null, sb.toString());}

}

最佳答案

当您将 change 传递给您的方法时,Java 会传递该值的副本。该方法可能会更改副本,但不会反射(reflect)在您在 main 中声明的原始更改中。

要在整个类中维护 change 计数,请让 numsalchange 声明一个初始化为 0 的局部变量,并且它可以根据需要递增该变量。然后它应该返回该值,并且main可以将返回的值添加到change

关于java - 整数初始化和方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com