For與while時間的對比

2021-09-24 17:15:25 字數 1461 閱讀 2494

本文首發於cartoon的部落格

前言索引隨機訪問陣列相信是很常見的操作.

但是昨天在做leetcode的reverse string時,發現了很奇怪的現象,具體如下圖

當時我也覺得不可思議,怎麼快了那麼多,所以今天覆盤一下。

正文測試**

private

static

void

textfor()

i=0;

long start=system.

currenttimemillis()

;for

(;i<

1000

;i++

)long end=system.

currenttimemillis()

; system.out.

println()

; system.out.

println

("for use:"

+(end-start)

+"ms");

}

private

static

void

textwhile()

i=0;

long start=system.

currenttimemillis()

;while

(i<

1000

)long end=system.

currenttimemillis()

; system.out.

println()

; system.out.

println

("while use:"

+(end-start)

+"ms");

}

結果
for use:35ms

while use:15ms

for use:14ms

while use:6ms

for use:14ms

while use:8ms

for use:20ms

while use:5ms

所用時間可能不一樣,但是大概比例應該跟我的差不多有點意外的是,while比for竟然要少一倍(大概)的時間,顛覆了我之前的認知。

結果分析

雖然我沒有debug**,但是我猜測是迴圈執行語句的多少差別。

for中,執行順序是

while中,執行順序是 後話

生命不息,技術不止。

很多時候我也為了**量的減少不理會執行時間的差異,這次吸收教訓,之後在實際開發會更加注意時間。

for迴圈執行流程及while迴圈的對比特點

常用的迴圈結構體包含以下三種,其中for迴圈的使用頻率相對較高,以下對其執行流程進行介紹 同時對其與while迴圈的差別也進行說明,純屬個人經驗,不足之處請見諒!for 初始化語句 判斷語句 迴圈控制語句 格式1 初始化語句 while 關係表示式 格式2 while true 1.for迴圈適合針...

while 1 和for 死迴圈對比

這是在c中的死迴圈方式 include intmain void return0 include intmain void return0 兩種迴圈在構造死迴圈時的區別 用while構造死迴圈時,一般會使用while true 來構造死迴圈 而用for來構造死迴圈時,則使用for 來構造死迴圈。這兩...

日期時間對比

現在時間和店鋪的營業時間相對比 判斷店鋪是否處於營業時間 getjudgebusinessldy function else if sec 10 else var runtime this.data.store.run timestr var nowtime yeart mon dates hour...