java 關於for迴圈

2021-09-12 04:22:09 字數 1439 閱讀 4069

關於使用for迴圈

有人喜歡使用for作類似while的迴圈:

for(;;)

究竟是++i,還是i++

for (int i = 0; i < arraya.length; ++i) 

for (int i = 0; i < arraya.length; i++)

以前我使用i++的寫法,後來,看到一些優秀的**中,大多使用++i,我就改用++i了。為什麼使用++i,看到過一些理由,但覺得那些理由,不值一提。

使用i, j, k作多層迴圈

for (int i = 0; i < arraya.length; ++i)

}

使用i, j, k做多層迴圈時,很容易犯錯誤,如上述**中的注釋縮寫的那樣。我參加的**評審(code review)中,或者開發過程中,經常有同事遇到這種bug。我也曾經吃過虧,每次編寫i, j, k多層for迴圈時,就會提醒自己,小心,別犯錯誤!

使用for的習慣,除了++i和i++的寫法不同外,還有和if、while等語句一樣的不同寫法,如下:

第一種寫法

a、關鍵字for後面有空格

b、二元表示式左右有空格

c、每個大括號,單獨佔一行

d、else關鍵字單獨佔一行

for (int i = 0; i < list.count; ++i)

第二種寫法:

a、關鍵字if後面有空格

b、二元表示式左右有空格

c、大括號放在上一句的右邊

for (int i = 0; i < list.count; ++i)

需要優化是,可能你也會採用這種寫法:

int listcount = list.count;

for (int i = 0; i < listcount; ++i)

如果for迴圈中,不會新增或者刪除list的元素,使用這種方式優化,可能得到一丁點(可能不值一提)的效能提公升。

需要從list中刪除元素時,可能你會使用反序的遍歷。如下:

int listcount = list.count;

for (int i = listcount - 1; i >= 0; --i)

}

如果list的實現是arraylist,反序遍歷可能比正序刪除的效能更高一些。

此外,for還有一些其他的使用方式,如:

for (init(); condition(); incement()) 

for (; i < j; ++i, --j) ;

關於for迴圈的累加效率問題(java)

累加的效率問題 目前有下面兩種方法 方法一 long sum 0 for int i 0 i value i 方法二 long sum 0 sum value 1 value 2 當value值等於10000,使用方法一,執行10次有4次會產生15毫秒左右耗時,使用方法二,執行10次無耗時產生。當v...

java 迴圈基礎

1.while 和 do while的區別 while 先判斷條件符合不符合 然後再 迴圈 do while 先迴圈一遍 再判斷條件符合不符合 while 迴圈條件注 使用步驟 1.確定迴圈條件 2.套用while語法寫出 3.迴圈是否能夠正常退出 2.什麼是do while迴圈 特點 先執行,再迴...

java 陣列 迴圈

陣列是乙個變數,儲存相同資料型別的一組資料 1,陣列的宣告 型別 陣列名 char cs int arr 宣告陣列名 arr new int 5 分配5個數的儲存空間 arr 0 2 arr 1 4 arr 4 4 賦值 2,分配空間 陣列名 new 型別 長度 cs new char 5 注意 1...