C語言for迴圈體內多條語句之間可以用逗號隔開,最後一條後面加分號,代替花括號嗎

2021-05-02 11:24:25 字數 4364 閱讀 9106

1樓:

如你寫的這樣當然可以,只要你能保證for裡面只有一條語句,就可以省去花花括號。

用逗號運算子來把多條語句合併成一條語句,還真是一個方法。

2樓:典夢凡

c語言不懂,但是一般上花括號是不能省略的,程式設計裡面的括號都是一一對應的,不存在只有一半的情況你前面有{的話,後面某處肯定會有}

3樓:love2012的家

您好,換成新的寫法是可以的,因為c是通過分號來區別下一段**的。但是不建議這樣寫,建議如果有多條語句,最好是放在花括號內。這樣一目瞭然,能夠知道for的迴圈體的開始於結束是在**。

以下是測試結果圖例

4樓:萍水e相逢

樓主說的是用 逗號表示式

應該可以

試一下啊

5樓:艾特

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d+3,為8,所以a1=8。

對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=3。

而分號代表一句話的結束,從樓主的**含義看,用逗號雖然可以編譯通過,但表達的意思就有問題了

6樓:匿名使用者

不能!!!

{} 是必須的

建議 樓主 除錯一下

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

7樓:大野瘦子

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

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

分號代表語句結束。

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

就等於:

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

8樓:翲燚

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

9樓:匿名使用者

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

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

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

10樓:逍遙的夢

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

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

11樓:匿名使用者

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

12樓:匿名使用者

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

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

13樓:匿名使用者

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

14樓:戀雲歌晨

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

15樓:想做一隻喵喵喵

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

c語言中 for語句後面的括號裡有兩個分號是什麼意思啊?

16樓:lee羅亞輝

for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈體語句。

for後面跟的是迴圈體。如果不需要有迴圈體,也就是for括號裡面的三句就可以完成所有功能那麼就加個分號,表示迴圈體為空。比如 :

求字串s的長度for(len=0;s[len]; len++);這個, 單獨for裡面的三句就完成了所有功能, 不需要迴圈體, 加分號。

擴充套件資料

for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。

for( ; ; )裡面是3個語句,兩個分號。第一個語句是開始前執行,第二個語句是判斷真假,如果真,就執行後面(大括號內)的**。第三個語句是每次執行完畢後執行的東西,通常第三個語句使用"i++"表示i=i+1的意思,用來遞增自變數i。

17樓:匿名使用者

表示這個迴圈沒有初始化,沒有條件判斷,沒有標誌變數的變化

它是一個死迴圈

這樣的迴圈其迴圈體內必須有跳出迴圈的語句,否則就沒法正常退出了

18樓:匿名使用者

你好!for(int i=0;i<100;i++) 分號主要是作分隔的效果。 意思就是說,第一個分號前面的是設定迴圈的起始大小;第一個分號與第二個分號間的是設定迴圈的最大次數;第二個分號後面的表示是遞增迴圈還是遞減迴圈。

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

19樓:種完太陽吃牛大

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迴圈語句,c語言中for語句是怎麼用的

for 語句包括三個表示式,第一個和第三個可以省略,省略第一個的意思是在for之前已經對變數初始化,例如i 0 for i 5 i 和for i 0 i 5 i 意思相同 第三個省略的意思也很明顯,原來的i 可以在for迴圈語句中實現,例如 for i 0 i 5 i 和for i 0 i 5 i ...

在c語言巢狀迴圈語句裡面內層迴圈用break是結束

結束的是內層迴圈,你的break屬於那個最近的for迴圈中的執行語句就結束那一個迴圈。內層內層內層內層內層內層內層內層內層內層內層內層內層 如果有多個迴圈,在最內層裡用break語句是是跳出最內層迴圈還是跳出所有迴圈 有多個迴圈,在最內層裡用break語句是跳出最內層迴圈。break 在一些計算機程...

c語言中while迴圈語句為什麼while(n!0)的意思是隻要n不等於0?,不應該是n等於0嗎

while 裡面的條件為真才進入迴圈。當n不等於0才進入迴圈,否則就執行while迴圈後面的語句。c語言裡面while函式while n n預設為什麼意思,n不為零嗎?while n 等價於 while n 0 表示n不等於0時執行迴圈體。首先,n在這裡被當作了一個條件 其次,當n為真時,進入whi...