亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請教一下,

#include <stdio.h>
int main()
{
?int sum, num;
?for (sum = 0, num = 0; num <= 3 && sum <= 5 && 1; num++, sum++)
?{
??sum += num;
??printf("num=%d,sum=%d\n", num, sum);
?}
?
?return 0;
}


這個代碼運行結果:num=0,sum=0

???????????????????????????????num=1,sum=2

???????????????????????????????num=2,sum=5

我的理解是num循環到1就結束了,為什么循環到2才結束?

正在回答

2 回答

C語言中只要不是1就會認為是真。

0 回復 有任何疑惑可以回復我~
#1

蘇蘚苼 提問者

我以為那個1是數字1,原來是布爾值0或1那個1啊
2015-09-17 回復 有任何疑惑可以回復我~
#2

onemoo

不是0才會被認為是true
2015-09-17 回復 有任何疑惑可以回復我~
#3

onemoo 回復 蘇蘚苼 提問者

就是數字1,這是整型字面量。
2015-09-17 回復 有任何疑惑可以回復我~

for中的判斷部分是 num = 0; num <= 3 && sum <= 5 && 1,意思是?num <= 3, sum <= 5 都成立才行。最后的那個1是個整型字面量,在邏輯表達式中所有非0整型值都為true,所以最后這個邏輯與對判斷沒有影響(要是這里為0,那整個判斷部分就為false,循環就不會執行了)。

可以看到循環3次時都滿足要求。但在第4次循環開始前,num是3,sum是6,sum不滿足循環條件了,所以不會有第4次循環。

0 回復 有任何疑惑可以回復我~
#1

蘇蘚苼 提問者

謝謝,懂了
2015-09-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

請教一下,

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號