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...