gpt4 book ai didi

java - 返回循环中每次迭代的结果

转载 作者:行者123 更新时间:2023-12-02 12:25:29 25 4
gpt4 key购买 nike

我正在做一些能产生正确结果的事情。然而,从设计角度来看,这是错误的。

该程序的要点是列出一个数的所有幂的结果,直到并包括用户定义的限制。

我有一个构造函数,它接受来自扫描仪的底数和指数。然后是一种方法,利用 for 循环来计算每个指数的幂。

现在,问题是我直接从此方法打印每个循环迭代的结果。这击败了私有(private)变量的要点,并且它首先是无效的。

因此,我想定义一个 getter 方法,将每次幂的结果返回到输出。我曾经为 if/switch 语句设置它们,但我不知道如何为循环做同样的事情。如果我将结果分配给循环内的变量并从 getter 返回该变量,那么它将仅返回最终迭代的输出。

私有(private)实现

package Chapter6Review;

public class Powers {

private int target;
private int power;


public Powers(int target, int power) {
this.target = target;
this.power = power;
}

public void calculatePower() {
for (int i = 0; i <= power; i++) {
System.out.println((int) Math.pow(target, i));
}
}

/*
public int getPower() {
return
}
*/
}

用户界面

package Chapter6Review;

import java.util.Scanner;

public class PowersTester {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);
System.out.print("Enter your base: ");
int target = in.nextInt();
System.out.print("Enter your exponent: ");
int power = in.nextInt();

Powers tester = new Powers(target, power);
tester.calculatePower();

}
}

最佳答案

您可以简单地使用列表;

public List<Integer> calculatePower() {

int p;
List<Integer> result = new ArrayList<Integer>();
for (int i = 0; i <= power; i++) {
p = (int) Math.pow(target, i);
result.add(p);
}
return result;
}

然后在你的主方法中,你可以迭代列表来打印权力,如下所示:

List<Integer> result = new ArrayList<Integer>();
Powers tester = new Powers(target, power);
result = tester.calculatePower();

for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i));
}

关于java - 返回循环中每次迭代的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506113/

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