確切地說,C語言判斷中if x 0 和if x 有什麼本質上的區別嗎

時間 2021-10-17 05:08:03

1樓:

兩者區別不大,“x==0”是個判斷語句,很顯然,“x==0”成立,這個語句就為真,結果為true;

而“!x”呢,如果“x==0”,那麼“!x”就為真,結果為true,反之,這位假,就是false(!

x為0);所以,兩者都是x為0則判斷為真,沒什麼本質區別的,如果lz非要區別的話,可以這樣認為,“x==0”是直接將x與0比較的,真假立判;而“!x”先判斷x是否為0,那麼就可以得出(!x)是否為0,可以這樣分解:

if(x==0) 則((!x)!=0) return true;if(x!

=0) 則((!x)==0) return false;這裡其實就是boolean與int的一點聯絡,lz知道,false與0等同,true與1等同,而在二進位制記憶體中,false是全0的,不全0就是true,這就是!x(x是非boolean型吧)可以作為判斷(即結果是boolean型)的原因了。

解釋這麼多,希望對lz有幫助,

lz別忘記給分!!!

2樓:匿名使用者

效果是一樣的,不過第一種不易出錯,移植性較強

3樓:匿名使用者

第一個是數值等於0,第二個是條件句,就是不滿足條件x,執行下面的語句

4樓:朝朝戰士邦

貌似效果是一樣的誒...本質麼..咳咳..不好說的樣子..

5樓:慕浩波

x==0 是判斷語句

!x 是取非語句

if 是判斷語句

c語言 if(x==0) if (x=0) 有什麼不同

6樓:

首先弄清楚==和=的區別。==是判斷是否等於,if(x==0)就是說如果x等於0,;=是賦值,if(x=0),先把0賦值給x,那麼此時就相當於if(0),0為假,1為真。沒了

7樓:匿名使用者

if(x==0)是條件語句,即x是否等於0;if(x=0)確切的說是個錯誤語句,因為x=0是一個賦值語句,即把0賦給x,而if語句這裡需要一個條件語句

8樓:匿名使用者

x==0是進行判斷

x=0是賦值語句等價於if(0)

一般寫if(x=0)的都是犯錯了

少寫個=號

9樓:

if(x=0)

這個是把x賦值為0再判斷,這個if永遠不會成立if(x==0)這個是判斷x是不是等於0的if(00&&x<1)這個才是判斷x是不是在0和1之間的

10樓:匿名使用者

if(x==0) 是判斷語句,如果x=0則為真,否則為假

if (x=0)是先執行x=0,再來判斷,沒去試過,可以肯定不是等同於if(0)就是等同於if(1)

11樓:嘻嘻t溦

首先,兩個語法上都是對的。

if()裡面可以放判斷語句,也可以放陳述句。

如果你知道x==0,x=0是陳述句,那麼就只說陳述句的區別,看例子最直觀。

if(x=0) 相當於x = 0和if(x)兩個語句,x會被賦值為0——>if(x)就變成了if(0);

小夥伴就會推測if(x=1)是不是就是if(1)——你的猜測是對的。

同樣if(x=1)相當於x = 1和if(x)——>if(x)變成if(1);

12樓:匿名使用者

沒法比較,“=”是賦值,“!=”是不等於,“==”這個是等於的判斷。

問題中前邊是x除以7的餘數賦值成0,不能這樣寫,沒有意義,會報錯吧。if後面的“()”裡應該是個條件啊,判斷啊之類的。

應該是問的if(x%7==0)和if(x%7!=0)的區別吧。前邊是當x除以7的餘數是0的時候(x是7的整倍數),條件成立,執行if後面{}裡的語句;後面的是當x除以7的餘數不為0的時候(x不是7的整倍數),條件成立,執行if後面{}裡的語句;

在c語言裡,if (x)等價於if (x!=0)、if (!x)等價於if (x==0)嗎?

13樓:匿名使用者

在c語言裡,if (x)等價於if (x!=0)、if (!x)等價於if (x==0)。

判斷的時候,x非零則為真,也就是x!=0就是x為真,x等於0,就是x為假。

if中需要的是個邏輯運算,真、假。如果是真執行if中包含的**,否則執行程式,在c語言中0為“假”,非0為“真”。

擴充套件資料

當前階段,在程式設計領域中,c語言的運用非常之多,它兼顧了高階語言和組合語言的優點,相較於其它程式語言具有較大優勢。

計算機系統設計以及應用程式編寫是c語言應用的兩大領域。同時,c語言的普適較強,在許多計算機作業系統中都能夠得到適用,且效率顯著。

14樓:匿名使用者

是的呦,其實if()裡面的判斷是邏輯判斷,0為假,非0為真!

15樓:匿名使用者

等價的。判斷的時候,x非零則為真。 也就是x!=0就是x為真。

x等於0,就是x為假。

16樓:

if中需要的是個邏輯運算,真,假。如果是真執行if中包含的**,否者執行下面的。

在c語言中0為“假”,非0為“真”。

if(x):1)如果x不等於0(非0),那麼if(x)就是”真“,所以if(x!=0)就是“真”。

2)如果x等於0(0),那麼if(x)就是“假”,if(x!=0)也就是”假“的,因為x明明等於0

if(!x):1)如果x等於0(0),非運算(!

)一下,可以簡單理解為取反(0取反為非0),那麼if(!x)就是不等於0了,那麼就是”真“了,if(x==0)也是“真”,因為x先前假設為0。

2)如果x不等於0(非0),那麼if(!x),就是等於0,也就是“假”,那麼if(x==0)也為”假“,因為先前假設x不等於0,可是現在==0,所以為假。

**********以上為考慮的思維

關鍵就是:0為“假”,非0為“真”。

by the way:if(x!=0)中的感嘆號為”不“的意思,x不等於0.而if(!x)中的x是將x的值”取反“,0變非0,非0變0

c語言中if(!x)和if(x) 的等價結構是什麼

17樓:匿名使用者

if(!x)等價於

if(x==0||x=='\0');

if(x)等價於

if(x!=0||!x==0)。

如果布林表示式為 true,則 if 語句內的**塊將被執行。如果布林表示式為 false,則 if 語句結束後的第一組**(閉括號後)將被執行。

“!”:(邏輯非)邏輯運算子。“邏輯非”就是指本來值的反值。

例如:" !0" 這個邏輯表示式的值為1.(判斷的這個數為0,成立,則其表示式的值為1)

" !1" 這個邏輯表示式的值為0.(判斷的這個數非0,不成立,則其表示式的值為0)

c 語言把任何非零和非空的值假定為 true,把零或 null 假定為 false。

18樓:匿名使用者

if語句為判斷語句,其功能為,如果括號內的表示式為真,則執行,否則不執行。

所以無論括號內為何種表示式,最終都是用按照邏輯運算表示式取值的。也就是結果為0,則按假處理,否則按真處理。

於是可以得到

if(x) 也就是當x非0則真,否則為假。等效於if(x != 0)。

類似的,if(!x)也就是當x為0則真,否則為假。等效於 if(x == 0)。

19樓:

if(!x)等價於if(x == 0)

if(x)等價於if (x !=0)

在c語言中if(x=0)與if(x==0)的區別 if(00&&x<1)的區別

20樓:匿名使用者

if(x=0)

這個是把x賦值為0再判斷,這個if永遠不會成立if(x==0)這個是判斷x是不是等於0的if(專0表示式是先讓0和屬x比較

00&&x<1)這個才是判斷x是不是在0和1之間的

21樓:血_翼狼

if(x=0) 和 if(0

22樓:匿名使用者

1、=和==的區別:=是賦值符號,==比較符號;

2、if(00&&x<1)表示數學中的0

在c語言中,與if(x==0) 等價的表示式寫法是什麼?

23樓:匿名使用者

if(!x) //但是不提倡這種寫法。首先不宜閱讀,其次別人會以為x是一個bool型變數。

24樓:寧小哥的分享

與if(x==0) 只有

1 if(!x) //這個是不好的風格

2 if(0==x) //這樣寫的習慣,可以防止x=0這樣的筆誤3 x==0 ? :{}; //這個適合有else的時候用不能用while,while是個迴圈,就算迴圈內修改了x的值,只執行了一次,或者x!

=0執行零次,本質上還是有區別

25樓:

do`````

``````

while(x==0);

或者:while(x==0)······

26樓:匿名使用者

7182225250回答的很好了

c語言中if(x==y)和if(x=y)有什麼區別

27樓:天雨下凡

if(x==y)是判斷x與y是否相等,相等則為真,不等則為假

if(x=y)這個是把y的值賦給x,然後判斷表示式x=y的值,c語言中,賦值表示式是有值的,它的值是賦值符號右邊的值,即x=y的值是y的值,如果y的值為0,那麼x=y為假,否則為真

一般來講,程式設計過程中if(x=y)這種寫法是錯誤的寫法,程式能夠通過編譯,也能夠執行,但是可能會出現意料之外的結果。

28樓:匿名使用者

==是等於的意思,比如x==100這個語句,如果x的值確實是100,則返回1,如果x的值不是100 則x不等於100,則返回0。

=是賦值的意思,只要賦值成功,都返回1。比如x=1,就是把1賦給x,換句話說,在這個句子之前,x可能沒有值,或者有其他值,但是這個語句之後,x就等於1了。

所以,如果是要判斷x是否等於y,那應該用x==y

c語言中 if(!x); 表示什麼意思

29樓:匿名使用者

很簡單,若x為真,那麼!x為假。if(x)等價於if(true),if(!

x)等價於(false)。後面執行什麼你應該知道了。還有就是如何判別x為真,只要是一個數,常量變數都是真的。

另外補充一點true和false 都是邏輯變數,在記憶體中true=1,false=0,所以!x在記憶體中等於0.

30樓:匿名使用者

(!x) 表示當x不成立(若為數值時,則x=0),則if語句條件成立,進而執行此條件內的語句;否則不執行if條件內的語句,直接跳過此段往下執行。

31樓:匿名使用者

x=0時,執行空語句

32樓:魏墨徹佴雲

非x的意思。

!在c語言中有兩種表達,這裡邊表示“非”。

取決於x的值,如果x的值為0,!x就是1.

如果x的值不為0,!x就是0的意思。

擴充套件資料:

c語言中提供了三種邏輯運算子:

&&(與運算)

||(或運算)

!(非運算)

優先順序:c語言中,運算子的運算優先順序共分為15

級。1級最高,15

級最低。

在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子

優先順序相同時,則按運算子的結合性所規定的結合方向處理。

結合性:c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z

則y應先與“-”號結合,執行x-y

運算,然後再執行+z

的運算。

這種自左至右的結合

方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。最典型的右結合

性運算子是賦值運算子。如x=y=z,由於“=”的右結合性,應先執行y=z

再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

參考資料:

c語言更多邏輯運算子

c語言判斷

第一句有問題,printf 意思就是列印括號裡的話。第二個對的,要想列印出一句話就要用printf.你看看這個題 從鍵盤上輸入乙個百分制成績score,按下列原則輸出其等級 score 90,等級為a 80 score 90,等級為b 70 score 80,等級為c 60 score 70,等級為...

c語言程式判斷題,c語言判斷題

1.c程式中的關鍵字必須小寫,其他識別符號不區分大小寫對2.在c語言中,5種基本資料型別的儲存空間長度的排列順序為 char10 後,t的值為0 錯,t 10 11.在c語言中,變數必需先定義後使用 對12.在c程式中,是隻能用於整數運算的運算子對13.在c語言中,邏輯 真 等價於不等於0的數對14...

c語言判斷日期

假設年n,月y,日d月m if m 1,3,5,7,8,10,12 if d 1 d 31 if m 4,6,9,11 if d 1 d 30 if m 2 if d 1 d 28 if d 29 if n是閏年 日期合法 先讀取月份,根據月份確定當月應該有幾天 大月還是小月 然後再對讀取的日期進行...