關于for循環語句后的分號問題
for(表達式1;表達式2;表達式3) 語句執行過程如下:1) 先求解表達式1。
2) 求解表達式2,若其值為真,則執行for語句中指定的內嵌語句,然后執行下面第3)步;若其值為假,則結束循環,轉到第5)步。3) 求解表達式3。
4) 轉回上面第2)步繼續執行。5) 循環結束,執行for語句下面的一個語句。
有分號時就是沒有循環體時,等于是直接跳到3)步,去求表達式3了,也就是表達式3成為循環體,等價于for(i=count; i >=1 ;i--) sum=sum+i;此后printf打出的是它執行完時sum的終值.而沒分號時循環體為printf語句,也就是說第一次并不是求表達式3,而是先去執行printf了,----這就是為什么第一次打出的sum總為0!!!也就是printf先于sum += i--執行了.總之,兩種情況下,sum += i--語句執行次數是一樣的,但在沒分號情況下,因printf要比它早執行一次,因而最后sum終值沒有被打出來而已。.。
在C語言中,for語句的后面加分號和不加分號有何不同,該分號有什么
加分號,表示這個循環是空語句,除了執行for()括號里的,什么都不干,然后就執行下一行。
不加分號,那for循環后面的printf語句就是for循環的一部分,跟著for一起執行,但前提是for循環里的條件要滿足。
分號代表語句結束。
例如:
for(i=0;i<100;i++);
就等于:
for(i=0;i<100;i++)
{
;
}
擴展資料:
注意事項
格式:
for(表達式1;表達式2;表達式3){
//若干語句(循環體)
}
執行規則:
計算表達式1,完成必要的初始化工作;
判斷表達式2的值,若表達式2的值為true,則進行3,否則進行4;
執行循環體,然后計算表達式3,以便改變循環條件,進行2;
結束for語句的執行。
關于for循環語句后的分號問題
for(表達式1;表達式2;表達式3) 語句
執行過程如下:
1) 先求解表達式1。
2) 求解表達式2,若其值為真,則執行for語句中指定的內嵌語句,然后執行下面第3)步;若其值為假,則結束循環,轉到第5)步。
3) 求解表達式3。
4) 轉回上面第2)步繼續執行。
5) 循環結束,執行for語句下面的一個語句。
有分號時就是沒有循環體時,等于是直接跳到3)步,去求表達式3了,也就是表達式3成為循環體,等價于
for(i=count; i >=1 ;i--)
sum=sum+i;
此后printf打出的是它執行完時sum的終值.
而沒分號時循環體為printf語句,也就是說第一次并不是求表達式3,而是先去執行printf了,----這就是為什么第一次打出的sum總為0!!!也就是printf先于sum += i--執行了.
總之,兩種情況下,sum += i--語句執行次數是一樣的,但在沒分號情況下,因printf要比它早執行一次,因而最后sum終值沒有被打出來而已.