分析:在 while循环中,循环递增变量 i 是定义在循环之外在 main 方法内的,它的作用域在整个 main 方法中。所以当 while 循环结束后, 变量 i 依然存在,占用的内存没有被释放。
而在 for 循环中, 递增变量 i 是定义在 for 循环之内的,该变量的作用域在 for 循环中,一旦 for 循环结束后,变量 i 所占用的栈内存就会随着for方法结束而销毁(
被垃圾回收器回收
)。
建议:1、在能用 for 循环时就不要用 while 循环;
2、循环体内尽量不要定义变量,因为这样会加大内存的开销。
for循环执行效率要比while循环高。Demo: 1. for循环 public static main(String[] args) { //计算1-10的值 int sum = 0; for(int i=0; i<=10; i++) { sum += ...
有人说
while循环
效率
更
高
,有人说for
循环
的
效率
更
高
,今天我们就用事实分析一下哪个
效率高
?
实践如下,我们来写一个1亿的次的
循环
,在
执行
for和
while循环
之前打印一下时间,然后相减来得出结论。
public static void main(String[] args) {
// 获取当前的毫秒值
long millis = System.currentTimeMillis();
System.out.println(millis
for
循环
和
while循环
的
效率
并没有绝对的差别,它们适用于不同的场景。一般来说,for
循环
适用于已知
循环
次数的情况,而
while循环
适用于
循环
次数未知的情况。在
执行
效率
方面,虽然有些测试结果显示
while循环
可能稍微快一些,但这种差异很小,可以忽略不计。因此,选择使用for
循环
还是
while循环
应该根据具体的需求而定,而不是单纯地追求
效率
上的差异。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++中for
循环
与
while循环
的区别总结](https://download.csdn.net/download/weixin_38612095/13707202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [for
循环
和
while循环
哪个
效率
更
高
](https://blog.csdn.net/weixin_42846892/article/details/118221066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [while比for
循环
效率高
是真的吗](https://blog.csdn.net/weixin_36428079/article/details/117096649)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
Code:
stack=5, locals=4, args_size=1
0: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J
3: lstore_1
4: iconst_0
5: istore_3
6: iload_3
7: ldc #3 // int 100000000
9: if_icmpge 18
12: iinc 3, 1
15: goto 6
18: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;
21: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J
24: lload_1
25: lsub
26: invokevirtual #5 // Method java/io/PrintStream.println:(J)V
29: return
[/code]