c語言中if判斷的條件裡可以加嗎?比如if(a0) 如果不行,那怎樣達到相同效果

2021-03-29 13:01:31 字數 6783 閱讀 1349

1樓:匿名使用者

你這個用法我真沒用過。。。if((a!=0)||(a!=1)||(s!=2)||(a!=3))

2樓:匿名使用者

if(a!=1&&2&&3&&0)

你這個條件相當於(a!=1)&&2&&3&&0也就是 永遠是0了

你應這樣寫: if((a!=1)&&(a!=2)&&(a!=3)&&(a!=0))

3樓:匿名使用者

if(a!=1||2||3||0)完全可以。c標準規定,if(expression)中的表示式可以是任意的。

但是,該表達是看似晦澀,難懂哦。不清楚要表達什麼意思。

4樓:匿名使用者

可以加,最後你加的結果等於0就是假,大於0就是真

c語言程式設計。 if((a=2)||(b=1))為什麼判斷為真啊?

5樓:

你看下你這行用的判斷符號用的是什麼?=與==的區別是什麼?

=表示賦值符號,而==才表示判斷。

你用a = 2,b = 1難道不是永遠成立嗎?賦值語句執行成功,所以條件就一直成立。

如果想要判斷a = 2,b = 1那就應該寫成if ((a == 2) || (b == 1))最後我沒搞明白你這**的作用。。。

6樓:鑄信

首先,a=2,這是賦值運算,賦值後a等於2,由非0即真的原則知道,該條件為真;

再者,或的判斷原則是:當第乙個條件為真時,便不判斷下一條件,整個式子為真。

7樓:匿名使用者

if((a=2)||(b=1))c=2; //你這裡寫的意思是把2賦給a,1賦給b 並不是乙個判斷 等於符號應該是==

8樓:金魚

把「=」改為「==」。

因為判斷框裡應該使用判斷符號「==」,而在c語言裡「=」是賦值符號,if(a=2), a=2這個賦值是恆成立的,相當於if(1),所以if((a=2)||(b=1))為永真。

9樓:匿名使用者

if((a=1)||(b=1))

邏輯運算子的優先順序低於=,而邏輯運算子要後面有優先順序比它低的才能運算,而且應該用==(等於)你用的是=(賦值),所以先改變了數值,當然不對了。

10樓:匿名使用者

編譯應該會有警告把

if(a=2),這裡應該是乙個==的,而你寫成了=在c語言裡=是賦值符號

if(a=2), 而a=2這個賦值是恆成立的 所以相當於if(1)if((a=2)||(b=1)) 類似

大部分編譯器會提示警告的,而很多人說警告可以不理會的,這就容易忽略這類警告了,

我的做法是寫成 if((2==a)||(1==b)) ,這時候再把==寫成= 就是錯誤而不是警告了,

11樓:匿名使用者

判斷條件寫錯了

if(a == 2 || b == 1)

a=2的值是2

b=1的值是1,

你寫的相當於if(2 || 1)

12樓:匿名使用者

a=2和b=1是賦值表示式,並不是判斷表示式

13樓:time棉花糖

因為=為賦值

if((a=2)||(b=1))相當於if(2||1)所以為真

c語言中,if語句迴圈體裡面能不能包含if語句塊? 比如: if(a==0) { if(b==2) { a=a+2; } } 40

14樓:欲生旭死

可以的~~

if語句的一般形式

(1) if(表示式) 語句1

(2) if(表示式)

語句1else

語句2(3) if(表示式1) 語句1

else if(表示式1) 語句2

......

else if(表示式m) 語句m

else 語句m+1if語句的巢狀

一般形式:

if()

if() 語句1

else 語句2

else 語句3

15樓:匿名使用者

可以的!

基本所有的語言中,if語句時都可以相互巢狀的!

其他for,while之類都是可互相巢狀的!

c語言提供了三種形式的if語句:

1、if(表示式)語句。

例如:if(x > y)printf("%d" , x);

2、if(表示式)語句1 else 語句2例如:

if(x > y) printf("%d" , x);

else printf("%d" , y);

3、if(表示式1)語句1

else if(表示式2)語句2

else if(表示式3)語句3

else if(表示式m)語句m

else 語句 n

在每個語句中,可以有多個語句,但需要加上大括號例: if(x > y)

c語言中 if(a||b&&c) ......... 什麼意思啊?謝謝。。

16樓:

||1&&表示邏輯與運算;

2||表示邏輯或運算;

3&&運算優先順序高於||運算;

4 舉例:

(3>2)||(1>2)&&(3>4)

=true||false&&false

=true||false

=true------------1

17樓:

若a=1並且b=2(執行該步操作後,b的值加1為3)。

邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。

符號 功能

&& 邏輯與

|| 邏輯或

! 邏輯非

當表示式進行&&運算時,只要有乙個為假,總的表示式就為假,只有當所有都為真時,總的式子才為真。當表示式進行||運算時,只要有乙個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!

)運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。

還有一點很重要,當乙個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:

a=2,b=1;

a||b-1;

因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。

這是一類特殊的運算子,自增運算子++和自減運算子--對變數的操作結果是增加1和減少1。例如:

--couter;

couter--;

++amount;

amount++;

看這些例子裡,運算子在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表示式的一部分,兩者就有區別了。運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。這樣講可能不太清楚,看下面的例子:

num1=4;

num2=8;

a=++num1;

b=num2++;

a =++num1;這總的來看是乙個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。

那麼如果出現這樣的情況我們怎麼處理呢?

c=num1+++num2;

到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該盡量避免出現上面複雜的情況。

18樓:有錢買不起房子

如果表示式a是真 或者 表示式b和表示式c都是真,將執行後面語句。

||是邏輯運算子或 ,&&是邏輯運算子與

在c語言裡,0代表假,非0代表真。例如a=3,b=0,c=4,那麼a||b&&c 3||0&&4 將是1 是真

19樓:匿名使用者

a或b且c

因為「且」的優先順序比「或」的高,所以先判斷 b且c,然後結果跟a「或」

另外c語言中非零為真,0為假。

「或」 "且" "非" 這種邏輯運算具體怎麼算不用多說了吧……

20樓:匿名使用者

|| 和&&優先順序一樣,所以按照從左到右的順序來算

先算a||b 得出結果 與 c進行 &&計算

最後就可以得出結果了

c語言, int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2;

21樓:匿名使用者

int a=1,b=2,c=3,d=4;

if((a=2)&&(b=1)) c=2;

a=2表示賦值2給a,同時檢查結果2是不是真, 當然是,所以又檢查b=1,

b=1 同上,結果也是真,所以執行c=2;

if((c==3)||(d==-1)) a=5;

c=2!=3 ,d=4!=-1,所以不執行a=5;

printf("%d,%d,%d,%d\n",a,b,c,d);

正確結果為:2 1 2 4

如果你的答案是5 1 2 -1,則說明你if((c==3)||(d==-1)) a=5;這句寫錯了,

應該是if((c==3)||(d=-1)) a=5; 是d=-1不是d==-1

c=2!=3為假,因為是||或關係,所以會再判斷d=-1,-1非0為真,會執行a=5

這樣結果為

a=5 b=1 c=2 d=-1

22樓:匿名使用者

我執行的結果是2,1,2,4

第乙個if中a=2(b=1)是賦值,和a==2(b==1)是不一樣的

23樓:匿名使用者

if((a=2)&&(b=1)) 相當於if(2&&1) ,結果很明顯

24樓:雪月靈妖

1.結果是: 2,1,2,4

不知道你為什麼是5,1,2,-1

2.if((a=2)&&(b=1))

a=2 => 2 真

b=1 => 1 真

c語言中if語句,如果上面賦值a=0,if(a=0)括號中條件是真還是假

25樓:匿名使用者

你問題中的if(a=0)這個if判斷的表示式是賦值操作,正常執行下一直是為真的

26樓:匿名使用者

c語言使用0代表假,非0代表真

if(a=0);

就相當於

a=0;

if(a);

就相當於

if(0);

括號中的條件是假

27樓:匿名使用者

1、if語句的表示式的值為非零值時,執行if後的語句塊

2、賦值表示式的值是賦值以後的左值的值

28樓:匿名使用者

假 a=0 是賦值表示式,賦值表示式的值取決於賦值號左側變數a的值,a=0 即表示式的值為0

若a=1 則賦值表示式的值為1

29樓:無恨

100%真。以後記住只要if內是賦值語句,那麼if條件表示式為真。

30樓:冽冽不是逗比

永遠都是假的 就等同於 if(0)

我想你想寫的是不是f(a == 0)這樣的判斷

31樓:serenity魚

false;

if(a=0)裡面是賦值運算,因為賦值為0 ,所以為false,如果賦值為2,則是true

c語言中if(3&&2) a=1;else a=2; 請問a是多少?

32樓:匿名使用者

a是1;在c語言中,除了0其它的值都代表邏輯1,所以if(3&&2)就是if(1&&1)

33樓:home奶茶溫泉

a=1if()裡面的表示式 3&&2為1 就是真 所以執行a=1

3&&2中3和2都是非0的數,所以&&操作就是1.

34樓:匿名使用者

在baic語言中,數值參與到邏輯du

表示式中時,zhi非0為 true,0為 false。

3 && 2,是乙個邏輯與dao表示式,兩邊同時為 true 時,內表示式為 true。由於3和

容2都是非0的數,都翻譯為 true,因此 3 && 2 為 true。

因此 a 值為 1。

35樓:興趣缺缺的

13&&2:3和2都不是0,則此條件成立

c語言中if(!a)表示什麼意思?

36樓:俟合英冉念

!是「非」的意思,!a就是「非a」

在c語言中,判斷句中的判斷結果,除了可以用true和false表示以外,還可以用數字表示,0表示「否」(false),0以外的所有數字表示「是」(true),所以,如果a是個整數,當a=0時,a是false,所以!a就是true;當a!=0時,a是true,所以!

a就是false

c語言中,怎麼判斷常量是否合法,判斷C語言數值常量是否合法 為什麼不合法?

整型分字首 0 0x 和字尾 u l 每種進製中用的數字不同 浮點數字尾f l,指數表示注意是否在範圍內 字元與字串主要注意轉義字元後面是否合法 a 整數中不允許出現逗號 b 科學計數法表示1.5乘以10的2.0次方,由於科學計數法指數部分只能是整數。c 號是轉義符號後面要跟其他符號來表示具體字元,...

c語言中如何判斷數是完全平方數C語言中如何判斷乙個數是完全平方數

需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建初始.cpp檔案,例如 test.cpp。2 其次,在test.cpp檔案中,輸入c語言 int a 64 double c sqrt a if c int c printf 是完全平方數 else printf 不是完全平方...

C語言中同條件的while和do while後者是比前者多迴圈一次麼

不是,只有當while迴圈條件不成立的情況下 後者比前者多迴圈一次。其他情況是完全一樣的。do while 是迴圈體至少執行一次。而while 的迴圈體可以執行0次 do.while迴圈比while迴圈多執行一次迴圈體語句。原因如下 do.while是先執行迴圈體語句,之後再進行迴圈條件的判斷的。w...