1樓:
如果說int i= 0;
int j = i++;與int j = ++i;那顯然是有你理解的區別
也就是字首和字尾自增的區別在於運算子返回值,而運算之後的變數值都是原先的變數值+1這也是毫無疑問的。
所以在你寫的for迴圈裡,我們因為沒有用到自增運算子的返回值,故沒有區別
不過如果寫成for (i = 0; i++<5; )和 for (i = 0; ++i<5; )就又出現區別了
「此時到下一迴圈是用1還是用2;實際上是用2,但書上不是說先用當前值在加1」對於這句話,你要理解所謂的「用」僅僅在i++這一個語句中,當這個語句執行完了,它也就用過了,那麼i的值已經是i+1了。這裡牽扯到一個賦值生效的概念,叫什麼我忘記了。。。不過請千萬不要小看「賦值」這個看似理所應當的東西,實際上在某種程度這是程序式程式設計語言的核心
2樓:蹇冠盛惜海
如果是for(初始化i;判斷條件;i++)迴圈和while迴圈就是初始化i,程式執行一次,同時i+1在賦值給i,判斷條件是否符合推出迴圈的條件,不滿足,則在執行此迴圈,i在加一,一次類推,直到滿足推出的條件
3樓:千羽傑
for(i=0;i<5;i++)與for(i=0;i<5;++i)這個在意義上是不同的,但是由於沒有用到跟i的具體關係,所以你看不出來。i++當然是先判斷i,再加1,而++i當然是先加1在判斷啦
4樓:華師來的
簡單說~++a和a++是在當前的一條語句會有所不同~比如~a=i++和b=++i;這兩條語句中~如果i=1;則a=1,b=2,而當這兩條語句執行完~
i的值都等於2~
在for迴圈中~++i和i++後面都有分號~也是一條語句~所以執行完~都是一樣~都是i+1.
for迴圈的累加條件i++ 和 ++i有什麼區別
5樓:茜拉密
i++是先進行一次迴圈,在進行累加;++i是i先進行一次累加,再迴圈。
兩個對於迴圈的次數都是沒影響的,都是5次,都是當 i 小於5 不成立的時候跳出迴圈,但後面的 i 還是會遞增1的。
兩者不同的地方在於++i 佔用的空間比 i++ 要小,i++是多定義一個變數的。看看運算子過載可以知道是怎麼回事。
在for迴圈中,如for(i=0;i<5;i++)與for(i=0;i<5;++i)在for迴圈的次數上沒有區別,都是五次,因為i++和++i都是在for迴圈內的語句執行後才執行!
6樓:匿名使用者
迴圈變數++i 和 i++對for迴圈而言是等效的。例如int i;
for( i=0; i<100; i++)for( i=0; i<100; ++i)這兩個迴圈的迴圈體都被執行了100次;迴圈結束時,i 的值都等於100。
7樓:匿名使用者
一般來說,二者之間沒有區別,這是對ansi c來說的,因為ansi c沒有規定二者的實現方法。也有人說有區別,這是針對某個c語言的具體實現而言的,這些人認為++i,比i++效率更高。
8樓:think說
int i=1,a;
a = i++;
a = ++i;
前面的a = 1而後面的a =2
因為i++是先賦值後計算,而++i則是先計算後賦值,這樣說相信你會明白的,而在for迴圈裡面的條件語句就沒有區別了!
9樓:油煎餅把燦
你問的問題的答案肯定是沒有區別,
你看看下面四個例子就懂了
for (a = 1; a < 3 ; a++);
printf("%d\n",a);
輸出的結果是3
for (a = 1; a < 3 ; ++a);
printf("%d\n",a);
輸出的結果是3
for (a = 1; a < 3 ; a++)printf("%d\n",a);
輸出的結果是2
for (a = 1; a < 3 ; ++a)printf("%d\n",a);
輸出的結果是2
10樓:
for(int i=0;i<10;i++)for(int i=0;i<10;++i)這樣沒有區別。
int i=1;
int a = i++;
int a = ++i;
這時才有區別
第一個a是1
第二個a是2
11樓:windy岸
兩者都是在迴圈迭代結束後執行
12樓:匿名使用者
中ci++先引用後增值,++i先增值後引用
c語言for語句中,for(i=1;i<=5;i++)是在迴圈的最後才執行i++還是一開始就執行i
13樓:月輪天唯五
迴圈的最後
比如第一次i=1;然後立即判斷,如果通過然後執行語句{};執行完語句後i+=1;然後再判斷,如果通過再執行{}
14樓:己若雲
執行完迴圈後再自增1
15樓:匿名使用者
不懂。你兩種都試試唄
for迴圈中的i++何++i沒區別嗎?
16樓:
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語句來表示就是有些浪費了!
17樓:zzllrr小樂
i++是先取i值進行本程式語句的計算,然後再自加1
++i是先自加1,再進行本語句運算。
如果只進行自加,而不涉及其他運算的情況下,兩者效果是一樣的。
18樓:嵐洌
++i是先讓i自加再引用i的值,而i++是先引用i的值再自加。而迴圈中的這個沒有參與i值的引用,所以是沒區別的。但是如果參與到i值的使用,就不同了,例如:
#include
using namespace std;
int main()
這個輸出結果就是0 1
19樓:落恬靜
for迴圈中沒有區別,如下測試程式結果均為012345
20樓:
i++是先取i值進行本語句的計算再自加1,++i是先自加1再進行本語句運算。
如果是i++;這種只進行自加而沒有其他運算的情況下,效果當然是一樣的咯。
21樓:匿名使用者
沒有區別噢
都是i的增值
有時候for內的第三個表示式還可以省略的
22樓:匿名使用者
在相同情況下,for語句中的 ++i 比 i++ 更加高效。
關於j**a中for迴圈和i++的問題
23樓:匿名使用者
這道題目主要是考察你對i++和++i的理解。一旦一條語句中有i++的出現,你可以這樣理解,把i++所在的語句拆分成兩條:第一條就是在原語句不變的基礎上,去掉++二字;第二句就是i = i+1。
以i++<10為例,即:i<10;i++;。system.
out.println(i++);就是:system.
out.println(i);i=i+1;。而對於++i的理解就相對容易了,也是拆分成兩條語句:
第一條就是i = i + 1;;第二句就是在原語句不變的基礎上去掉++二字。按這個理解,你再看看能不能捋順。
24樓:匿名使用者
當i = 9時,執行到i++ < 10,此時9<10,於是執行i++ < 10裡面的i++,此時i=10,然後繼續迴圈,執行後面的i++,此時i= 11,繼續下一迴圈,到i++ < 10這一塊,11<10,不成立,於是執行執行i++ < 10裡面的i++,此時i= 12,然後到列印語句,先執行++i,此時i就是13了,再列印i,就是13
25樓:匿名使用者
看你的loop覺得你想要的結果是:1-9吧,你的loop有兩個錯:第一,for()裡第一個引數是專門針對loop裡的運算進行指定的,loop外的一律起不到作用,寫的話只能這麼寫:
for(int i=o;i<10;i++);第二,println裡沒必要寫++i。 歡迎追問
請問這兩個for迴圈 中 ++i與i++的作用一樣麼?
26樓:四舍**入
示例for迴圈**中++i與i++主要有以下區別:
1、用法不同:++i是先改變i的值即加1後再使用i的值;而i++是先使用i的值在改變它的值即加。
2、for迴圈內部僅形式不同:當i++迴圈和++i迴圈在for迴圈內部,雖然形式上明顯不同,但輸出結果可以一樣。
27樓:矛盾小少年
本題中的++i和i++是一樣的,因為for迴圈中的++i與i++的值都會帶入第一層中去的,即i=m+1。在此我要宣告的是++i是先增加後賦值,i++是先賦值後增加的。但是m+1=5的話,++i=i++的都是6。
所以你的說法是錯誤的。
28樓:匿名使用者
這兩個的for迴圈一樣
++i是先加後用 i++是先用後加
但是你沒有理解for迴圈執行順序
for(a;b;c)
先執行a,
迴圈:判斷b (不滿足退出)
執行c只有涉及到++i 或者i++ 直接賦值或取值的時候它們才有區別,這裡面只是對i增1所以沒有影響
29樓:匿名使用者
for迴圈中的++i和i++執行的效果是一樣的,但是++i的執行時間更短,所以演算法書上一般用的都是++i。
30樓:封禁決
兩個for迴圈是一樣的,其變數i的初始值是一樣的,i++與++i對其沒影響。
c語言中for迴圈語句 for(i=1;i<10;i++)這個一共執行幾次 我總是無法完全理解 求
31樓:匿名使用者
首先要知道for語句
的執行原理,這樣你就知道答案了:
現在以 for(i=1;i<10;i++)為例說明如下:
1.:執行到for語句時,讓i=1,但這隻執行一次。也就是說for語句中第一個分號前的語句只執行一次,就是相當於初始化
2.:判斷第二個分號前的**是否為真
如果為假則退出for語句,就不執行for語句的後面{}中的語句,當然也就不執行第二個分號後的**了
如果為真,則先執行for語句的後面{}中的語句,如果期間沒有跳出語句的**則執行第二個分號後的**,再跳回到2步進行判斷!
所以你的這個for迴圈如下執行
先 i=1
1次,此時i=1,滿足i<10 執行for語句內**,執行i++(i=2)
2次,此時i=2,滿足i<10 執行for語句內**,執行i++(i=3)
3次,此時i=3,滿足i<10 執行for語句內**,執行i++(i=4)
4次,此時i=4,滿足i<10 執行for語句內**,執行i++(i=5)
5次,此時i=5,滿足i<10 執行for語句內**,執行i++(i=6)
6次,此時i=6,滿足i<10 執行for語句內**,執行i++(i=7)
7次,此時i=7,滿足i<10 執行for語句內**,執行i++(i=8)
8次,此時i=8,滿足i<10 執行for語句內**,執行i++(i=9)
9次,此時i=9,滿足i<10 執行for語句內**,執行i++(i=10)
此時i=10,不滿足i<10 退出for語句,未執行i++(i=10)
32樓:無奈去遊戲
9次 i=1 小於10 進入迴圈 執行宣告 後i++i=2 一次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=3 2次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=4 3次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=5 4次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=6 5次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=7 6次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=8 7次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=9 8次完成,
返回for 判斷小於10 進入迴圈執行宣告後i++i=10 9次完成,
大於10跳出迴圈
在js中怎麼結束當前for迴圈,js裡的for迴圈問題,下面這個for迴圈是什麼時候停止的
1 跳出迴圈用break語句就可以實現。開啟hbuilder軟體,建立一個點選按鈕標籤和用於顯示迴圈內容的div標籤 2 在scrip標籤裡,建立點選觸發迴圈的方法,迴圈裡當迴圈到3的時候,用break語句跳出迴圈體,在button標籤上新增點選myfunction 函式 3 按下crtl s儲存後...
mfc中在button函式裡怎麼實現讀取中的內容
include locale cstdiofile f cstring str if f.open m filename,cfile moderead cfile typetext f.close setdlgitemtext idc button1,str mfc一個按鈕功能為讀取txt中的資料,...
號碼隱私保護是怎麼實現的,怎麼實現個人號碼隱私保護?
這個是需要通過技術方案來實現的 打 想保護自己的隱私,不讓對方知道自己手機號碼,方法有 方法一 到運營商服務點或者網上營業廳取消來電顯示功能,不過這方法如果對方到運營商那查詢還是可以查到主叫號碼 方法二 使用一款叫雲撥 的網路 軟體,該軟體具有隱藏號碼和語音加密功能,對方無法知曉和查詢你的真實號碼,...