1. 程式人生 > >A&&B與B&&A有什麼區別

A&&B與B&&A有什麼區別

舉例看下面一段程式碼:

for ( j=100; j>=0 && v[j]>key; j--) {
    ;//do something
    }

執行沒有問題。
但是假如我把這段程式碼這麼寫:

//注意&&前後的表示式調換了位置
for ( j=100; v[j]>key && j>=0 ; j--) {
    ;//do something
    }

這個時候執行就出了問題!
原因是在C++中,如果判定&&前面的表示式值為false就不會繼續向後判斷了。
在本例中:
j>=0在前面保證了j取到-1時直接跳出迴圈。如果v[j]>key在前,當j取到-1時會發生錯誤。