for循环执行效率要比while循环高。
Demo:
1. for循环
public static main(String[] args) {
//计算1-10的值
int sum = 0;
for(int i=0; i<=10; i++) {
sum += i;
}
}
2 . while循环
public static main(String[] args) {
//计算1-10的值
int sum = 0;
int i = 0;
while(i < = 10) {
sum += i;
i++;
}
}
分析:在 while循环中,循环递增变量 i 是定义在循环之外在 main 方法内的,它的作用域在整个 main 方法中。所以当 while 循环结束后, 变量 i 依然存在,占用的内存没有被释放。
而在 for 循环中, 递增变量 i 是定义在 for 循环之内的,该变量的作用域在 for 循环中,一旦 for 循环结束后,变量 i 所占用的栈内存就会随着for方法结束而销毁(被垃圾回收器回收 )。
建议:1、在能用 for 循环时就不要用 while 循环;
2、循环体内尽量不要定义变量,因为这样会加大内存的开销。