程序1:
public class Panduansushu {
public static void main(String[] args) {
double num = 999999999999999994.00;
long t1 = new Date().getTime();
long n = (long) Math.sqrt(num);
for (long i = 2; i < n; i++) {
}
long t2 = new Date().getTime();
System.out.println((t2 - t1));
}
}
t2-t1= 1953
程序2:
public class Panduansushu {
public static void main(String[] args) {
double num = 999999999999999994.00;
long t1 = new Date().getTime();
for (long i = 2; i < Math.sqrt(num); i++) {// Math.sqrt(num)执行了i++次
}
long t2 = new Date().getTime();
System.out.println((t2 - t1));
}
}
t2-t1= 14110
因此,程序2结构中for循环Math.sqrt(num)每次都被执行 效率远不如程序1结构.