gpt4 book ai didi

java - Java 一次循环中的多个方法

转载 作者:行者123 更新时间:2023-12-02 11:50:06 26 4
gpt4 key购买 nike

我想使用同一循环运行多个方法,但遇到了问题。

假设我有以下方法:

void xy1() {
int y1 = 0;
for (int x = 0; x < 10; x++){
y1 += x;
}
}

工作正常,我所要做的就是在构造函数中调用它。

现在,假设我还想使用另一种方法,但 y 的初始值不同:

void xy2() {
int y2 = 1;
for (int x = 0; x < 10; x++){
y2 += x;
}
}

也能正常工作。

但是,我想要的是让这两种方法在同一个循环中同时运行。一个明显的解决方案是将它们合并到一个方法中:

void xy (){
int y1 = 0;
int y2 = 1;

for (int x = 0; x < 10; x++){
y1 += x;
y2 += x;
}
}

但是,当引入越来越多的变量时,这很快就会变得困惑。所以我尝试做的是将循环放入构造函数中,并让它在每个周期调用方法:

Constructor (){
int y1 = 0;
int y2 = 1;

for (int x = 0; x < 10; x++){
xy1(y1, x);
xy2(y2, x);
}
}

方法如下:

void xy1(int y1, int x) {
y1 += x;
}

void xy2(int y2, int x) {
y2 += x;
}

这样做的问题当然是每次构造函数调用方法时,它只是传递 y1 和 y2 的初始值,而不是它们当前应该具有的值。在方法中定义初始值只会导致它们在每个周期以相同的方式重置。

所以我需要的是方法以某种方式记住新计算的 y 的最后一个值。我觉得我缺少一个明显的解决方案......我尝试过使用谷歌,但我真的不知道该使用什么搜索词。

当我们这样做时,由于方法执行的计算是相同的,如果我可以简单地定义一个方法 xy,并让构造函数使用不同的初始 y 值(在相同的循环)。这样做的问题是,必须有 y 的单独实例,因此要防止一个 y 被该方法的两个实例操纵(这有任何意义吗?这是我预计会遇到的问题,所以我'我不完全确定它会采取什么形状。我总是可以创建一个新问题。)

感谢您的帮助!

最佳答案

您需要更改方法的签名以返回其计算值,如下所示。

int Calc(int InitialValue, int Increment){
int Result = InitialValue + Increment;
return Result;
}

这样做之后,必须更改构造函数以将计算值分配给其局部变量,如下所示。

Constructor(){
int y1 = 0;
int y2 = 1;

for (int x = 0; x < 10; x++){
y1 = Calc(y1, x);
y2 = Calc(y2, x);
}
}

关于java - Java 一次循环中的多个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47943958/

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