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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

while(!(--a))是什么???有了解的嗎?

while(?。?-a))是什么???有了解的嗎?

C++ C
ABOUTYOU 2022-06-02 17:13:37
下列程序段的輸出結果是 。int a=3;do { printf(“%d\n”,a-=2);} while(?。?-a));A)3和0 B)死循環,沒有輸出 C)1和-2 D)1答案選C,我只知道1,不知道-2怎么來的。
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

while(!(--a))的意思為先計算a=a-1,再判斷a的值是否為0,為0則繼續執行循環語句,實例解析如下:

①如圖,首先先執行a=a-2,得a=1并輸出

②再執行while(!(--a)),此時先執行a=a-1,得a=0,所以!a不為0,所以此時while的邏輯判斷為真,會繼續執行printf(“%d”,a-=2);所以會輸出-2,然后繼續判斷!a就為0了,此時判斷邏輯假,不會繼續執行循環了。

再如下圖:

輸出a=1后,得出a=0,邏輯為假,此時直接退出循環,所以只輸出1.


查看完整回答
反對 回復 2022-06-06
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

C/C++沒有所謂的“邏輯量”,而是用普通數值表示邏輯值。
其中0表示邏輯假,非0值表示邏輯真。
例題第一次循環結束時,a值為1,此時循環條件!(--a)=!0為真,因此會進入第二次循環從而輸出-2。

查看完整回答
反對 回復 2022-06-06
  • 2 回答
  • 0 關注
  • 433 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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