1樓:網友
在你的例子中二者是看不出來區別的,給你舉個例子好了。
#include
using namespace std;
int main()
int i=j=0;
cout執行結果是。
原因在於輸出i的時候是i++是首先輸出原來i的值而後自加,所以還是0,++j則正好相反,先完成自加而後輸出。當再次要求輸出i時,顯示的結果就是自加後的了,所以是1而不是0.
2樓:超級奶爸頭子
在這個迴圈裡我感覺沒有不同,比如看這兩個子程式執行結果是一樣的:1、#include
void main()
int i;
for(i=1;i<=100;++i)
printf("%d,",i);
if(i%10==0)
printf("");
#include
void main()
int i;
for(i=1;i<=100;++i)
printf("%d,",i);
if(i%10==0)
printf("");
執行結果都是輸出從一到一百。
但如果i++和++i在別的地方可能是有區別的。
3樓:風舞冰砂
在這裡是沒有區別的,++運算子的前置和後置只有當表示式中還有其他運算子時才有區別,這裡的兩個++都是單獨使用,所以沒有區別,都是當完成一次迴圈體內容後將i加1
4樓:網友
的確在該式子中沒有區別,但在其他的地方有,給你舉乙個例子,假如i=5m=i++;
n=++i;
結果就是m=5,而n=6
i++是指先把i本身的值賦值給m,然後再自增,+i是i先自增,再把i自增後的值賦值給n;
當然最後i的值都為6
希望你能明白,謝謝。。。
5樓:網友
在這種情況下沒區別。
for迴圈中i++與++i的區別
6樓:教育能手
for迴圈中的i++和++i是有區別的,區別如下:
i++是先引用i的值再自加,而++i是先讓i自加再引用i的值。本迴圈中困巖孝i++的輸出值為0 1 2 3 4 5 6 7 8 9,而++i的輸出值為1 2 3 4 5 6 7 8 9,但兩種演算法執行完畢之後汪稿,i的值都為10.一般實際應用中,先加在引用顯得更高效。
for迴圈中的變數可以是乙個也可以是多個,不要侷限於乙個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了!
for迴圈注意事項:
1、for迴圈中語句可以為語句體, 語句體外加大括號"{}將參加迴圈的語句括起來。 for迴圈的三個表示式都是逗號表示式,這樣來說,其實每個分號表示式可以由幾個逗號表示式構成,中間用",」隔開,最後以「;」結束。
2、 for迴圈中的"單次表示式"、"條件表示式"和"迴圈體語句"都是選擇項, 即可以預設成只剩下「;」的空語句, "不能預設的原因是編譯格式如此,預設了編譯器不認識而會報錯。
3、省略了用來初始化的單次表示式時, 表示不對迴圈控制變數賦初值。
4、省略了條件表示式, 若不做其它處理則成為死迴圈。
5、省略了所有迴圈體, 則for語句不被其它形式處理時不產生任何棗帶作用。
請問for迴圈中寫i++與++i有啥區別嗎
7樓:水果山獼猴桃
for迴圈中i++與++i的主要區別如下:
1、引用順序不同。
前者是:先引用,後增加,,後者是:先增加,後引用,++i是先改變i的值,而i++是先使用i值然後再改變它的值。
例如:i的原值是5,則對於 j=++i,j的值為6;對於 j=i++,j的值為5,然後j的值變為6。
2、輸出結果不同。
它們兩個表達形式不同,其輸出結果也是不一樣的,i++輸出結果是1,而++i輸出結果是2。
8樓:來自銀河系
如果只是一條單獨語句,沒區別,比方說for(i=0;i<9;i++)與for(i=0;i<9;++i)都表示每次f0r迴圈結束時i+1後判斷i是否<9再進入下一次迴圈。或者是迴圈內部的i++;及++i;也同理。
但如果不是單獨語句,就有區別:比如n=++i;和n=i++;n賦的值就不同,前者n的值為i,i再+1,後者n的值為+1後的i值。再有把乙個陣列的值賦到另乙個陣列中時,y[j++]=x[i];與y[++j]=x[i];也不同y陣列開始儲存的起點不同。
9樓:網友
++i是先改變i的值即加1後再使用i的值。
而i++是先使用i的值在改變它的值即加。
10樓:專業這樣阿西吧
說反了吧,n = ++i 的意思是把 i 做一次自增運算之後的值賦給 n
n = i ++的意思是先賦值,再做自增運算。
11樓:桑尼頌
i++和++i在for迴圈中執行的次數是相同的,所以寫那種都可以。
i++和++i在迴圈中的區別
12樓:華源網路
+i是先改變i的值即加1後再使用i的值;而i++是先使用i的值在改變它的值即加。
for迴圈內部大搜棚僅形式不同:當i++迴圈和++i迴圈在for迴圈內部,雖然形式上明顯不同,但輸出結果可以一樣。
print()輸出函式內,不僅形式不同且輸出結果也不同。for迴圈。
for迴圈結構是c語言中最具有特色的迴圈語句,使用最為靈活方便,它的一般形式為:
for(表示式1;表示式2;表示式3)迴圈體語句 。(其中;不能省略)
表示式。表示式1為初值表示式,用於在迴圈開始前為迴圈變數賦初值。
表示式2是迴圈控制邏輯表示式,它控制迴圈執行的條件,決定迴圈的次數。
表示式3為迴圈控制變數修改表示式,它使for迴圈趨向結束。
迴圈體語句是在迴圈控制條件成立的情況下被反覆執行的語句。
但是在整個for迴圈過程中,表示式1只滾則計算一次,表示式2和表示式3則可能計算多次,也可能一次也不計算。迴圈體可能多次執行,也可能一次都不執行。
先執行表示式2,然後執行迴圈結構,最後表示式3,一直這樣迴圈下去。
for迴圈語句是c語言種功能最為強大的'語句,甚至在一定程度上可以代替其他的迴圈語句。
dodo迴圈結構,do 1 while⑵;的執行順序是1->2->1...迴圈,2為迴圈條件。
whilewhile迴圈結構,while(1) 2; 的執行順序是1->2->1...迴圈,1為迴圈條件。
以上迴圈語句,當迴圈條件表示式漏態為真則繼續迴圈,為假則跳出迴圈。
在for迴圈中++i跟i++有區別嗎?
13樓:信必鑫服務平臺
當然是有區別:乙個是先加一再循壞,另乙個是先迴圈再加一。
具體的:如果只是一條單獨語句,沒區別,比方說for(i=0;i<9;i++)與for(i=0;i<9;++i)都表示每次f0r迴圈結束時i+1後判斷i是否<9再進入下一次迴圈。或者是迴圈內部的i++;及++i;也同理。
但如果不是單獨語句,就有區別:比如n=++i;和n=i++;n賦的值就不同,前者n的值為i,i再+1,後者n的值為+1後的i值。再有把乙個陣列的值賦到另乙個陣列中時,y[j++]x[i];與y[++j]=x[i];也不同y陣列開始儲存的起點不同。
請問這兩個for迴圈 中 ++i與i++的作用一樣麼?
14樓:四舍**入
示例for迴圈**中++i與i++主要有以下區別:
1、用法不同:++i是先改變i的值即加1後再使用i的值;而i++是先使用i的值在改變它的值即加。
2、for迴圈內部僅形式不同:當i++迴圈和++i迴圈在for迴圈內部,雖然形式上明顯不同,但輸出結果可以一樣。
15樓:矛盾小少年
本題中的++i和i++是一樣的,因為for迴圈中的++i與i++的值都會帶入第一層中去的,即i=m+1。在此我要宣告的是++i是先增加後賦值,i++是先賦值後增加的。但是m+1=5的話,++i=i++的都是6。
所以你的說法是錯誤的。
16樓:網友
這兩個的for迴圈一樣。
i是先加後用 i++是先用後加。
但是你沒有理解for迴圈執行順序。
for(a;b;c)
先執行a,迴圈:判斷b (不滿足退出)
執行c只有涉及到++i 或者i++ 直接賦值或取值的時候它們才有區別,這裡面只是對i增1所以沒有影響。
17樓:網友
for迴圈中的++i和i++執行的效果是一樣的,但是++i的執行時間更短,所以演算法書上一般用的都是++i。
18樓:封禁決
兩個for迴圈是一樣的,其變數i的初始值是一樣的,i++與++i對其沒影響。
for迴圈i++與++i的區別是前加加是先執行迴圈體內的內容,再加加嗎?
19樓:網友
在for迴圈中,如for(i=0;i<5;i++)與for(i=0;i<5;++i)在for迴圈的次數上沒有區別,都是五次,因為i++和++i都是在for迴圈內的語句執行後才執行!
20樓:網友
兩個對於迴圈的次數都是沒影響的,都是5次,都是當 i 小於5 不成立的時候跳出迴圈,但後面的 i 還是會遞增1的。
兩者不同的地方在於++i 佔用的空間比 i++ 要小,i++是多定義乙個變數的。看看運算子過載可以知道是怎麼回事。
21樓:網友
單獨的++i和i++ 一樣,結果沒有區別,都是i加1
你的迴圈也是如此,都是迴圈5次。
22樓:網友
對於for來說沒有區別;但對於賦值 j=++i和j=i++ 就不同了, 乙個先+1再賦值,乙個是先賦值再加一。
for迴圈中的i 何 i沒區別嗎
for迴圈中的i 和 i是有區別的,區別如下 i 是先引用i的值再自加,而 i是先讓i自加再引用i的值。本迴圈中i 的輸出值為0 1 2 3 4 5 6 7 8 9,而 i的輸出值為1 2 3 4 5 6 7 8 9,但兩種演算法執行完畢之後,i的值都為10.一般實際應用中,先加在引用顯得更高效。f...
多重迴圈中的continue的用法
public class cont system.out.println test 當是continue back1的時候,當i 0時候第二層for迴圈到j 9的時候就結束此次迴圈,執行continue back1,到第一層迴圈。此時因為有i 所以i 1的時候,第二層for迴圈到j 9的時候就結束當...
請問for迴圈中的switch語句中case後用break還是continue??區別是什麼
鐮刀鐵錘遊騎兵 break是結束並跳出迴圈語句,continue是結束本次迴圈然後進入下次迴圈 迴圈的定義是程式段執行完了以後,再次判斷條件,若條件為真,則繼續執行該程式段。而在switch結構當中,只是該程式段執行完了之後,就繼續執行下面的語句。因此很明顯switch結構不是迴圈。迴圈有重複 反覆...