iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
0

因為沒太多工作經驗,而且平常也沒太多研究
題目也快被用完了,只好看看其他學校的作業題目:5乘5的陣列中,找出正方形

#首先,我們先說明&與&&有什麼分別。
大家都是AND運算符號
https://ithelp.ithome.com.tw/upload/images/20171222/20107818cofJPB7wqE.png
只有條件一條件二均為T (真),輸出結果才為T (真)
若有一項條件為F(假),結果則為F(假)

我們來了解**&&**

int A=1;
int B=2;
if (A==1 && B==2)
 printf("&&為Ture");

第一步,電腦會先判斷A==1是否為Ture
第二步,電腦再判斷B==2是否為Ture
如果兩項條件均為Ture,才會執行if的動作,輸出文字**&&為Ture**
&&運算子,會先把所有條件執行判斷,再判斷結果。

接下來,再了解**&**

int A=1;
int B=2;
if (A==1 & B==2)
 printf("&為Ture");

第一步,電腦會先判斷A==1是否為Ture
如果條件一為Ture才執行第二步,電腦再判斷B==2是否為Ture
如果兩項條件均為Ture,才會執行if的動作,輸出文字**&為Ture**
&運算子的條件只要其中一項為False(假),則不會對後續條件作判斷,並直接判斷為False(假)

&&與&比較
&&運算子必定會對所有條件執行判斷,再判斷結果。
&運算子只在有需要,才對後續條件執行判斷。

雖然以上兩個程式所輸出的結果一樣,但邏輯不同

===================分格線===================

#接下來,我們先說明|與||有什麼分別。
大家都是OR運算符號
https://ithelp.ithome.com.tw/upload/images/20171222/20107818pGJvxrdwEu.png
只要其中一項條件為T (真),輸出結果即為T (真)
若所有條件均為F(假),結果才為F(假)

我們來了解**||**

int A=1;
int B=2;
if (A==1 || B==2)
 printf("||為Ture");

第一步,電腦會先判斷A==1是否為Ture
第二步,電腦再判斷B==2是否為Ture
只要其中一項條件為Ture,則會執行if的動作,輸出文字**||為Ture**
||運算子,會先把所有條件執行判斷,再判斷結果。

接下來,再了解**|**

int A=1;
int B=2;
if (A==1 | B==2)
 printf("|為Ture");

第一步,電腦會先判斷A==1是否為Ture
如果條件一為Ture,則會馬上執行if的動作,輸出文字**|為Ture**
如果條件一為False,才會繼續判斷B==2是否為Ture
|運算子的條件只要其中一項為Ture(真),則不會對後續條件作判斷,並直接判斷為Ture(真)

||與|比較
||運算子必定會對所有條件執行判斷,再判斷結果。
|運算子只在有需要,才對後續條件執行判斷。

雖然以上兩個程式所輸出的結果一樣,但邏輯不同

最後,祝大家聖誕節快樂


上一篇
i++ 與 ++i可以怎麼理解?
下一篇
陣列中找出正方形 [2]程式
系列文
提神?看程式比喝咖啡更有效。30

尚未有邦友留言

立即登入留言