java方法输出取决于范围外的先前代码?
我有以下代码:
public static void method1(int v, int t) {
float sum = 0;
for (int j = 1; j <= t; j++) {
GG g = new GG();
MS ms = new MS();
Graph graph = g.generate1(v);
total_sum += ms.run(graph, v);
}
System.out.println("N = " + Integer.toString(v) +" sum: " + Float.toString(sum / (float) t));
}
public static void method2(int v, int t) {
float sum = 0;
for (int j = 1; j <= t; j++) {
GG g = new GG();
MS ms = new MS();
Graph graph = g.generate2(v);
sum += ms.run(graph, v);
}
System.out.println("N = " + Integer.toString(v) +" sum: " + Float.toString(sum / (float) t));
}
public static void main() {
for (int i = 0; i <= 18; i++) {
int n = 1 << i;
method1(n, 5);
}
for (int i = 0; i <= 18; i++) {
int n = 1 << i;
method2(n, 5);
}
如果我在main
中包含第一个for循环(包含method1
),那么method2
得到的答案与省略第一个for循环得到的答案不同。有人知道为什么会这样吗?如果第一个for循环的结果和第二个for循环的结果在不同的范围内,它们会如何影响?我在每个方法中实例化新对象,所以我不确定为什么会出现这种情况
共 (0) 个答案