C語言中if,for後加不加分號都可以麼

2021-04-28 17:32:07 字數 6272 閱讀 4622

1樓:

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++);

這句話就是一個字串的複製,當然,真正寫程式的時候是很少用這種語法的。

2樓:匿名使用者

您好,一般情況是bai這樣du

的if(a==1)

...;

或者if(a==1)

如果if後面確定不需要執行什zhi麼dao**,也可以寫成if(a==1);

其中;表示空語句內。

for的用法也是容一樣的,這些基礎的東西,時間長了,堅持學習,都會知道的。

3樓:下次

if語句要加。

for如果後面加了分號 就表示迴圈到這個for語句就結束了例如:for(i=1;i<=5;i++)

printf("hello!\n");

如果上面的專for加了分號屬 下面的輸出語句就只輸出一個hello!因為for有分號 所以輸出語句並沒包含在內

而沒加分號 for語句的i每加一次 輸出語句就要輸出一次

4樓:來世永生

if和for都可以加分號。只是加了後意義就不同了。if和for加了分號後,就是一空語句,沒有什麼實質的作用。

5樓:匿名使用者

for 後加的話,表明迴圈體是一個空語句。補充樓上。

6樓:匿名使用者

這個看書都會的,,

看不懂??

if,for的括號後面都不要加分號的

7樓:索多瑪海盜

if()

else

語句;for()

8樓:匿名使用者

一般規範來說都不加的

在c語言中,for語句的後面加分號和不加分號有何不同,該分號有什麼作用?

9樓:大野瘦子

加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹,然後就執行下一行。

不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。

分號代表語句結束。

例如:for(i=0;i<100;i++);

就等於:

for(i=0;i<100;i++)

10樓:翲燚

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次。

11樓:匿名使用者

for後面是個迴圈體 你可以理解為一個語句塊for{}

平時是由一些語句組成的 如果直接加分號的話 說明不執行操作(空操作) 只做單純迴圈 沒有什麼意義 一般用在延遲函式裡

但這樣的寫法是不推薦的 因為很佔cpu 你可以試一下用三重迴圈 然後迴圈體只寫一個分號 執行你會發現電腦記憶體一下子飆很高 最簡單的電腦病毒就是這樣做的 用很高次的迴圈 做無意義的操作 讓你的電腦執行很慢

12樓:逍遙的夢

for(i = 0;i<5;你所說的是for()後面那個分號嗎?如果是的話,他後面的分號是一定要的,但是如果分號直接寫在括號後面卻沒有其他語句的話,證明這個迴圈是沒有可執行語句的,如上面1.

第二個例子分號前面有個語句,就是每當括號裡的條件成立時,他就會執行一次。

13樓:匿名使用者

分號代表語句結束假設你有一個陣列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語言中,分號代表語句結束

14樓:匿名使用者

c語言中";"表示一句的結束,長的句子可以分成多行寫,到最後才寫一個";"

for語句中後面的分號也是如此,根據迴圈結構和你的需求不同,有時會寫分號,有時候換到下一行寫,還是有分號的。

15樓:匿名使用者

這個 其實每一項**後面必須要加「;」,但是如果for後沒有語句 就多加一個「;」,代表那項**是空值 for ( i = 0; a[ i ] <= m; i++ ) ;;;;;;; 也沒人說你錯的

16樓:戀雲歌晨

剛試驗了一下,一個是加分號一個是不加分號的

17樓:想做一隻喵喵喵

推薦回答中最後那個迴圈出來是i=5,而不是4

在c語言中,for語句的後面加分號和不加分號有何不同?

18樓:種完太陽吃牛大

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語言中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語言中if語句後面不能加分號,否則當條件為真時執行空語句是什麼意思?

24樓:會飛的小兔子

意思是if語句在執行時,先

判斷括號內語句是否為真,如果為真,則執行後續程專序。當括號內為空時,語句判斷屬為非真,後續所含語句不予執行。

if語句的具體用法:

#include

int main()

printf("x=%d\n" , x);

return 0;

}擴充套件資料if…else if…else語句的具體語法格式如下:

if (判斷條件1)

else if (判斷條件2)

……else if (判斷條件n)

else

25樓:倒黴熊

比如int a,b;

a=2;b=3;

if(a這個

來if括號後面有分號,表示的自是bai 如果a,則不執行任du何語句,而是空語zhi句,分號前dao面沒有任何語句。

而if(a

26樓:匿名使用者

因為加bai分號表示一行語句

du,而你if後面加分號,程式認zhi為dao你if之後沒有語句了,專所以下一行的語句跟if沒關係屬了,直接導致不管if判斷是否成立都會執行下一行語句。

在c語言中編譯器認為一行**的條件是;號不是換行符,所以即使兩行沒加分號,編譯器也認為是一行語句。

27樓:

if( 條件表示式來)

語句段1;

這時候如果源你在 if( 條件表bai達du式zhi)後面加分號就成dao

了:if( 條件表示式);

語句1;

這樣,當條件表示式為真和不為真,都會執行語句1,且為真時,執行的是空語句,即分號前的語句,相當於:

if( 條件表示式) 空語句;

語句1;

28樓:射手

比如:if (i < 0)//這裡沒有bai分du號i=0;

上面那個

語句沒有分號,如zhi

果i<0(即所說的dao條件為真),那

版麼會執行權i=0.如果是這樣

if (i < 0);//這裡有分號

i=0;

那麼相當於

if (i < 0);

;i=0;

第一個分號之前什麼都沒有,所以就是執行空語句

29樓:匿名使用者

比如if(a>8);

寫的容易看一點就是

if(a>8)

當條件為真時要執行大括號裡面的語句

而此時分號前面沒有語句(即為空語句),所以當條件為真時執行空語句

C語言中if語句後面不能加分號,否則當條件為真時執行空語句是什麼意思

if n 3 i 這樣寫,如果條件 n 3 成立,那麼i才會自增。if n 3 i 這樣寫,不管條件 n 3 是否成立,i都會自增,因為if語句執行了一條空語句。所以建議這樣寫 if n 3 if語句表示式是if printf 這句話的意思是如果if語句為真則執行printf 如果寫完if 後直接加...

c語言中指標加不加有什麼區別,C語言指標什麼時候加星號什麼時候不加

剛開始學習 baic,同樣有這du個疑問,在網上zhi查了一下,沒 有什麼讓人一目了dao然的解釋。專用int x作為屬 例子。既然int x 只是定義了一個記憶體空間,儲存一個記憶體地址,那麼普通的int x應該也可以做到。int num 5 int x int x1 x 和 x1 同樣儲存的是 ...

c語言中用指標賦值字串為什麼不加如下

a cool 這是地址來賦值,將一個常量字串 自的首地址賦值給a這個指標。a cool 這是字元賦值,不是字串 雖然a叫字串指標,但char a這樣的定義,a必然是一個字元,而不是多個。因此後面的常量會被忽略為一個字元,進行數值賦值 也可以理解為拷貝賦值,區別於地址賦值 在a沒有分配地址的情況下,直...