c語言問題求解釋其中whileb 的意思

時間 2021-10-14 21:22:52

1樓:匿名使用者

在c語言中,0表示假,非0表示真。

while(!b)表示b等於0時,判斷條件為真,執行迴圈體;否則為假,不執行。

非運算子(!)為單目運算子,具有右結合性。參與運算量為真時,結果為假;參與運算量為假時,結果為真。例如:!0為真;!9為假。

雖然c編譯在給出邏輯運算值時,以“1”代表“真”,“0 ”代表“假”。但反過來在判斷一個量是“真”還是為“假”時,以“0”代表“假”,以非“0”的數值作為“真”。

所以當b=0; 則 !b 為真,while(!b)執行

當b!=0; 則 !b 為假,while(!b)不執行

現在分析下你的**:

第一次進入迴圈體後,走

case 1: b=0;但這行沒有break,故繼續執行直到遇到break或執行完整個switch後退出,你的**中執行到case 2: b=-1; break;這行

此時 b = -1;,跳出switch

繼續執行

a=a+b;

b=2*a;

此後a = 1 + -1 = 0;

b = 2 *0 =0;

繼續執行到while (!b);

因為b=0;所以!b不等於0,此時條件判斷為真,

程式第二次進入迴圈體

這時 a=0;b=0

執行default : b=1;跳出switch

繼續執行

a=a+b;

b=2*a;

之後a = 0 + 1 = 1;

b = 2 * 1=2;

繼續執行到while (!b);

因為b=2;所以!b等於0,此時條件判斷為假跳出while迴圈

所以**的輸出為: a=1, b=2

希望採納!

2樓:匿名使用者

c語言值為0為假,非0為真。

!是求反操作,舉例來說就是:!0為真,!5為假。

do--while 就是迴圈語句了

while (!b)也就是當b的值為0時繼續迴圈,當值非0時結束迴圈。

希望幫到你。

3樓:demon天v武

這是do while語句 當b不等於0的時候就會跳出迴圈

c語言中while(a

4樓:神丶雨祭丨

沒有判斷的話就是a有boolean值。也就是true or faulse 。

然後就是無限迴圈下面的**。直到遇到停止語句。

5樓:匿名使用者

while(a見於初學者,想判斷b是否在a c之間,可是這是錯誤的寫法

while(a

while(a

6樓:閭曉士之雙

這種問題是一個很無聊的問題,在實際程式設計中不可能會碰到,而且作為規範的程式,也不允許這樣的表示式出現。

while

(a

((a<

b)

7樓:苦澀無人愛

while()是迴圈語句,t是判斷條件,當t為真或非0的話,執行迴圈,否則退出迴圈,比如t=1,迴圈會持續執行,t=0則退出迴圈,或者 t 可以是其他判斷語句,滿足ture時執行迴圈,為false則退出迴圈

8樓:匿名使用者

while(t)

相當於while( t!=0 )

t值為0時,條件為假

t值不為0時,條件為真

while( t )是while( t!=0 )的簡便寫法。

c語言,while(!e)中的!e等價於? a,e==0 b,e!=1 c,e!=0 d,==1.再解釋下!是什麼意思

9樓:匿名使用者

假設一個例子 ,連結串列中一個計算連結串列長度的迴圈,e剛開始初始化為第一個元素的地址

while(!e)

當初始條件滿足時,後面的迴圈內容開始執行,每執行一次都修改e的值,當e不為null即零的時候永遠迴圈執行,所以可以判斷 (!e) 等價於 e!=0 。

10樓:倒黴熊

!是非的意思,就是如果e為真 則 !e為假,e為假 則!e為真。

那麼while迴圈條件是 !e 為真,才迴圈,也就是 !e == 1才迴圈

11樓:匿名使用者

等價於a,while迴圈條件預設是括號中不為0,也就是!e != 0 ,那就是e==0

C語言問題,求解釋!謝謝了

乙個乙個說 a int a b 0 b沒有定義 c c b b本來是個指標型別,現在加了取位址符 則等號右邊成了 型別,無法賦給左邊的float 型別 d 中間是分號,錯了!如果是逗號就沒問題了b char a 65 1 asii值 66即是b 類似 char a b a選項之所以錯,是因為b變數不...

while 的用法 c語言,c語言中while的用法

1024程式設計師 c語言迴圈結構之while迴圈語句 while 表示式 就是當 表示式的則為非零時,執行迴圈體內的語句!你的程式相當於 int jsvalue long n if s n return 1 if s n return 0 k是long int型別,所以k不能為小數 輸入n迴圈開始...

c 語言while迴圈,c語言while的用法

p1 p2 這個是賦值語句,而非比較運算。字元陣列雖然有大小限制,但是指標就不同,即便超過了大小,指標指向陣列越界後的下乙個記憶體單元,並不會發生錯誤 另外,printf s a 函式列印字串,它是在遇到字串結束符的時候才終止輸出,此時a陣列的值已經被賦值為p2所指向的記憶體空間的值。這個程式是錯的...