1樓:大野瘦子
加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹,然後就執行下一行。
不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。
分號代表語句結束。
例如:for(i=0;i<100;i++);
就等於:
for(i=0;i<100;i++)
2樓:翲燚
for語句有兩種用法,一種是跟單個語句,一種是跟**體。
在跟單個語句時,由於在c語言語句預設是以分號結尾的,程式會將for (;;)之後直到第乙個分號的**視為迴圈體來執行,例如下面三種情況:
for (int i=0; i<10; i++) foo1();
for (int i=0; i<10; i++)
foo1();
for (int i=0; i<10; i++)
foo1();
上面三種寫法,都是呼叫foo1()函式10次。在下面一種情況裡,程式只會將foo1()函式迴圈呼叫10次,而不會將foo2()列入迴圈中,因為分號for語句在foo2()之前就已經結束了:
for (int i=0; i<10; i++) foo1(); foo2();
特別要提的是下面的兩種寫法,這兩種寫法的for語句的迴圈體都為空,程式都不會將foo2()列入迴圈,因此foo2()只會執行一次。這也是初學者常見的書寫錯誤。
for (int i=0; i<10; i++) ; foo2();
for (int i=0; i<10; i++) ;
foo2();
除了跟單個語句外,for語句還可以跟 圈起來的**體,如下面的例子:
for (int i=0; i<10; i++)
在這種情況下,for語句可以不以分號結尾,程式會將**體內的所有語句迴圈10次。
3樓:匿名使用者
for後面是個迴圈體 你可以理解為乙個語句塊for{}
平時是由一些語句組成的 如果直接加分號的話 說明不執行操作(空操作) 只做單純迴圈 沒有什麼意義 一般用在延遲函式裡
但這樣的寫法是不推薦的 因為很佔cpu 你可以試一下用三重迴圈 然後迴圈體只寫乙個分號 執行你會發現電腦記憶體一下子飆很高 最簡單的電腦病毒就是這樣做的 用很高次的迴圈 做無意義的操作 讓你的電腦執行很慢
4樓:逍遙的夢
for(i = 0;i<5;你所說的是for()後面那個分號嗎?如果是的話,他後面的分號是一定要的,但是如果分號直接寫在括號後面卻沒有其他語句的話,證明這個迴圈是沒有可執行語句的,如上面1.
第二個例子分號前面有個語句,就是每當括號裡的條件成立時,他就會執行一次。
5樓:匿名使用者
分號代表語句結束假設你有乙個陣列int a[5];那麼你可以這樣給陣列賦值for(int i = 0;i<5;i++) a[i]=i;這個是沒加分號的,那麼a[0]=0,a[1]=1....a[4]=4;for(int i = 0;i<5;i++);這樣加了分號,就代表結束了,相當於迴圈只執行了i,然後就退出迴圈了 a[i]=i;//這樣相當於只有a[4]=4; c語言中,分號代表語句結束
6樓:匿名使用者
c語言中";"表示一句的結束,長的句子可以分成多行寫,到最後才寫乙個";"
for語句中後面的分號也是如此,根據迴圈結構和你的需求不同,有時會寫分號,有時候換到下一行寫,還是有分號的。
7樓:匿名使用者
這個 其實每一項**後面必須要加「;」,但是如果for後沒有語句 就多加乙個「;」,代表那項**是空值 for ( i = 0; a[ i ] <= m; i++ ) ;;;;;;; 也沒人說你錯的
8樓:戀雲歌晨
剛試驗了一下,乙個是加分號乙個是不加分號的
9樓:想做乙隻喵喵喵
推薦回答中最後那個迴圈出來是i=5,而不是4
在c語言中,for語句的後面加分號和不加分號有何不同?
10樓:種完太陽吃牛大
for迴圈後面加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹。然後就執行下一行,也就是你的prinf,printf和for迴圈沒關係。
如果不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。執行到第二個for時a已經等於3了,你要b=a,那b怎麼可能小於3 。所以後面的for迴圈不滿足條件,不執行,同時for裡面的**也不執行。
使用for語句應該注意:
1) for迴圈中的「表示式1(迴圈變數賦初值)」、「表示式2(迴圈條件)」和「表示式3(迴圈變數增量)」都是選擇項,即可以預設,但分號(;)不能預設。
2) 省略了「表示式1(迴圈變數賦初值)」,表示不對迴圈控制變數賦初值。
3) 省略了「表示式2(迴圈條件)」,則不做其它處理時便成為死迴圈。
例如:for( i=1; ; i++ ) sum=sum+i;
c語言中if,for後加不加分號都可以麼?
11樓:
if語句不bai能加,如
if(a>0)
pritf("%d", a);
else
pritf("%d", 0);
a>0時就能把dua列印出來,a不大zhi於0就列印出0,但要是加上了dao
if(a>0);
pritf("%d", a);
else
pritf("%d", 0);
這樣是編譯不過去的,回編譯過程
答中還會有個「warning c4390: 「;」 : 找到空的受控語句;這是有意的嗎?」
「error c2181: 沒有匹配 if 的非法 else 」
for語句一般也不會加,乙個空的迴圈是沒有意思的。
但是也有一些特殊的情況,比如:
while(*s++ = *t++);
這句話就是乙個字串的複製,當然,真正寫程式的時候是很少用這種語法的。
12樓:匿名使用者
您好,一般情況是bai這樣du
的if(a==1)
...;
或者if(a==1)
如果if後面確定不需要執行什zhi麼dao**,也可以寫成if(a==1);
其中;表示空語句內。
for的用法也是容一樣的,這些基礎的東西,時間長了,堅持學習,都會知道的。
13樓:下次
if語句要加。
for如果後面加了分號 就表示迴圈到這個for語句就結束了例如:for(i=1;i<=5;i++)
printf("hello!\n");
如果上面的專for加了分號屬 下面的輸出語句就只輸出乙個hello!因為for有分號 所以輸出語句並沒包含在內
而沒加分號 for語句的i每加一次 輸出語句就要輸出一次
14樓:來世永生
if和for都可以加分號。只是加了後意義就不同了。if和for加了分號後,就是一空語句,沒有什麼實質的作用。
15樓:匿名使用者
for 後加的話,表明迴圈體是乙個空語句。補充樓上。
16樓:匿名使用者
這個看書都會的,,
看不懂??
if,for的括號後面都不要加分號的
17樓:索多瑪海盜
if()
else
語句;for()
18樓:匿名使用者
一般規範來說都不加的
請問c語言中for迴圈後面加上分號和不加分號有什麼區別嗎?
19樓:匿名使用者
加上分號,for迴圈就變成了空迴圈,一直迴圈,不輸出任何東西,直到不滿足迴圈條件,退出迴圈,才執行下一條語句。
20樓:匿名使用者
在哪加?
在大括號後? 那最好不加,加了就是多乙個空語句。
如果直接加了for()的後面,將執行不了別的語句了~~~~~~~~~~~~~
c語言中for後面的()加分號;嗎?
21樓:匿名使用者
分號標誌乙個語句的結束,對於for()而言,迴圈體還在{}裡邊,如果加了分號,迴圈體就不再會執行,這顯然不是所要的。
22樓:匿名使用者
大多數時候不加
for後面跟的是迴圈體。
如果不需要有迴圈體,也就是for括號里版
面的三句就可以完成所權有功能
那麼就加個分號,表示迴圈體為空。
比如 求字串s的長度
for(len=0;s[len]; len++);
這個, 單獨for裡面的三句就完成了所有功能, 不需要迴圈體, 加分號。
23樓:六十七年
這個問題很容bai易理解du
①for(...)
這樣寫會把{}內的zhi**放在for迴圈中dao執行回②for(...);
這樣些答for語句會單獨執行for()中的語句,另外會把{}內的**當成乙個**塊來執行
其實就相當於
for(...)
a;b;
c語言for括號後加分號什麼意思
24樓:天雲一號
for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈內體語句
int i, j=0;
for(i=0; i<5; i++) // 帶迴圈體的for迴圈括起來的就是循
容環體語句
j++;
}for(i=10; i>0; i--); // 不帶迴圈體的for迴圈
// 執行過程如下如下(也就是for後帶分號的意思)// 當i=10時,i>0成立,則i=i-1=9;之後當i=9時,i>0成立,則i=i-1=8,一直執行下去,當i<=0時跳出for迴圈
25樓:匿名使用者
正常的應該是這個
抄樣子的
for(i=0;i<10;i++)
叫迴圈體!
如果是這樣:for(i=0;i<10;i++) ;表示什麼都不做。跳出後,i的值為10。
如果沒有分號就不完整!
26樓:匿名使用者
for(i=0;i<10;i++);是完整的for迴圈,包括迴圈體,迴圈體是空語句,do nothing
for(i=0;i<10;i++)是不完整的for迴圈,沒有迴圈體
27樓:匿名使用者
for(i=0;i<10;i++);表示沒有迴圈體,空轉
for(i=0;i<10;i++) 後面接的是迴圈體,如果i<10那麼就執行此句後面的迴圈體
28樓:
for(i=0;i<10;i++);是完整的for迴圈,迴圈體是空語句,do nothing
for(i=0;i<10;i++)是不完整的for迴圈,沒有迴圈體
29樓:我欲弒神
表示這裡直接迴圈!起到延時的作用!
30樓:江小右
; 就是乙個語句,不過是空語句而已
c語言中 for語句後面的括號裡有兩個分號是什麼意思啊?
31樓:lee羅亞輝
for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈體語句。
for後面跟的是迴圈體。如果不需要有迴圈體,也就是for括號裡面的三句就可以完成所有功能那麼就加個分號,表示迴圈體為空。比如 :
求字串s的長度for(len=0;s[len]; len++);這個, 單獨for裡面的三句就完成了所有功能, 不需要迴圈體, 加分號。
擴充套件資料
for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。
for( ; ; )裡面是3個語句,兩個分號。第乙個語句是開始前執行,第二個語句是判斷真假,如果真,就執行後面(大括號內)的**。第三個語句是每次執行完畢後執行的東西,通常第三個語句使用"i++"表示i=i+1的意思,用來遞增自變數i。
c語言中,這個語句是什麼意思啊C語言中For語句後面的括號裡有兩個分號是什麼意思啊?
tp a a b b tp是交換了ab的指向,不影響主函式,t a a b b t是改變了位址上的值,也就是把i和j的值互換。所以函式中 a b的輸出對應是j 3,i 7,主函式輸出ij這個沒什麼好說的,p和 q還是ij的值。1 加 交換的是位址,會改變主函式中i和j的值,swap交換的是i和j的位...
問個C語言中for語句巢狀if的問題
d 0也就是說d為真,那麼應抄該執行 ee執行完畢後執行c 如此反覆,直到b為0,執行f 我想你想問的是d為0時的情況,那麼執行c,直到b為0,執行f我不已經說了麼,我想你想問的是d為0時的情況,那麼執行c,直到b為0,執行f 當d 0時 返回執行c。如果滿足b,就再執行d,不滿足就執行f c語言高...
C語言中這樣的語句對嗎p,C語言中這樣的語句對嗎 p a
首先要明白指標是什麼?指標就是乙個4位元組的值 32位機器 用來存放乙個具體的位址,號是用來取值的也就是取相應位址上的值,當然也可以對相應位址位置賦值 是取位址符,a表示去變數a的位址,這句完全是可以的。把a的位址 乙個32位的值 付給指標p所指向的位置 當然必須指標p的型別是32位的 在實際應用中...