当前位置: 首页 > 知识库问答 >
问题:

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

盖翰池
2023-03-14

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

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

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

现在,问题是我直接从这个方法打印每个循环迭代的结果。这超过了私有变量的点,它首先是无效的。

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

私人执行

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();

}
}

共有3个答案

沈俊美
2023-03-14

您也可以考虑使用流

public List<Integer> calculatePower() {
    return IntStream
            .rangeClosed(0, power). // iterate from 0 till power inclusive
            .mapToObj(i -> (int) Math.pow(target,i)) 
            .collect(Collectors.toList()); // get result as list
}
颛孙飞
2023-03-14

您可以将每个结果存储在列表中:

List<Power> list = new ArrayList<>();

当你调用它时,也添加它

list.add(new Powers(target, power));

最后,您可以像这样遍历列表:

for (Power power : list){
// your code
}
步衡
2023-03-14

您可以简单地使用列表;

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;
}

然后,在main方法中,可以迭代列表以如下方式打印幂:

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));
}
 类似资料:
  • 我试图在PHP中的foreach循环的每次迭代之后进行回显。回声在全部完成之前不会呈现。我试过各种帖子的建议,但没有一个奏效。我的一些代码是: 有什么建议吗?谢了。

  • 我正在尝试获取一个

  • 计分器(100分) Praveen正在学校找一份计算机科学教师的工作。他多次被不同的学校拒绝,但这次他决心得到这份工作。他去找圣玛丽学校的校长。 校长说他的学校有等级和学分制。有N个科目,每个科目都有一个学分 现在,如果有3个科目的学分分别为4、3和2,并且某个学生在这3个科目中的分数分别为a(负)、B和C,那么他的分数计算如下:总分=每个科目的分数和相应学分的乘积之和。 他希望Praveen通过

  • 考虑这个简单的C++函数来计算数组的前缀和: 它是4个融合的UOP1,这个CPU可以支持4个融合的OPs/周期。 有通过和携带的依赖链,每个都是一个循环,但是这些UOP可以到4个ALU端口中的任何一个,所以似乎不太可能冲突。融合的需要转到p6,这是一个更令人担忧的问题,但我只测量到p6的1.1 UOPS/迭代。这将解释每次迭代1.1个循环,但不是1.4个循环。如果我将循环展开2倍,端口压力会低得多

  • 在Django模板中,我想创建一个遍历列表的for循环。在循环过程中,我还希望能够使用循环的迭代次数。 例如,如果有4个元素,那么: 应打印以下内容: 我该怎么做呢?