对于一项任务,我得到了一些涉及 FORTRAN 代码的工作,但唯一的问题是我们还没有被教过,所以我不完全确定发生了什么,所以我试图将它转换为 Java试图掌握它。以下是 FORTRAN 代码:
L1: DO 20 I = 1, 512
L2: SUM(I) = 0
L3: DO 40 J = 1, I
L4: 40 SUM(I) = SUM(I) + 1
L5: 20 CONTINUE
这个想法是 L2 和 L4 都需要一个机器周期,我必须计算出循环完成需要多长时间。以下是我的 Java,我认为它至少相当接近于计算出我想要的值:
public static void main(String[] args) {
int cycles = 0;
for(int i = 1; i < 512; i++){
cycles = cycles + 1;
for(int j = 1; j < i; j++){
cycles = cycles +1;
}
}
System.out.println(cycles);
}
这看起来正确吗?任何帮助表示赞赏。我已经从数学上考虑过了,得到了不同的答案(尽管两者都很接近),所以我不确定哪个更好。
编辑:我想明确一点,我并没有尝试将 FORTRAN 直接移植到 Java,而只是使用 Java 计算上面提到的周期时间。
编辑2:我不是要创建数组,只计算循环期间所用的周期。因为 L2 和 L4 行都需要一个循环,所以我在 Java 中交换它只是为了弄清楚所用的循环,而不是 FORTRAN 循环所做的事情。