++i和i++區別在於運算順序和結合方向。
js中有兩種自加運算,其運算子均為++,功能為將運算子自加1.
其中:
++var被稱為前自加,其後面的變數執行自加操作,其運算為,先執行自加操作,再引用var值。
var++被稱為後自加,其前面的變數執行自加操作,其運算為,先引用var值,再進行自加操作。
如果自加語句獨立成為乙個單獨的語句,那麼前後自加是完全相同的。
比如單獨的一行
a++;和++a;是一樣的。
再比如,常見的
for
迴圈:
for
(i = 0; i < 100; i ++)
for
(i = 0; i < 100; ++i)
這裡用到的++i和i++是完全相同的,沒有區別。
當運算變數本身值會在自加語句中,同時執行其它操作,二者就有區別了。
比如
var
i =0;
while
(i++<10);
i會先和10比較大小,然後執行自加。這樣當i=10時,退出迴圈,再執行一次自加,退出後i值為11。
而如果寫成
while
(++i<10);
是先執行自加,然後再與10比較。這樣在i=9時,先自加,得到i=10,然後比較就會退出迴圈了。這種情況下,退出後i值為10。
再舉乙個例子。
var
a, i = 10;
a = i ++;
//這裡i要先賦值,再自加。語句執行後a=10, i = 11;
而如果寫成:
var
a, i = 10;
a = ++i;
//這裡i要先自加,再賦值。語句執行後a=11, i = 11;
i和i 的區別
大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...
i 和 i的區別
當年上c 課的時候對於i 和 i的區別就稀里糊塗。後來沒注意也沒出過什麼問題。但是這個問題還是應該搞清楚。假如有乙個vector,值為 1,2,3,4,5,6,7 用以下程式輸出 i 0 while i 7 i 0 while i 7 cout beforei v i endl cout befor...
i 和 i的區別
很多朋友在學習基礎的時候很容易遇到過這個問題,i和i 到底有什麼區別?下面來詳細解釋一下。首先i 和 i單獨為一條語句時沒有任何區別 例如 int i 1 i 單獨為一條語句 system.out.println i i i 2 int i 1 i 單獨為一條語句 system.out.printl...