為了讓編譯器更好地優化循環,應該盡量讓循環中減少判斷,方法之一是將判斷語句整合進表達式。還是這個例子:
for (int i = 0; i < 1000*10; i++) { sum += data[i/1000][i%10]; }
for (int i = 0; i < 1000*10; i++) { if (data[i/1000][i%10] >= 0) sum += data[i/1000][i%10]; }
for (int i = 0; i < 1000*10; i++) { sum += (data[i/1000][i%10] >= 0) * data[i/1000][i%10]; }