2019年11月28日 星期四

C語言教學07 - 比較運算

真假邏輯

真假邏輯顧名思義有真值(true)以及假值(false)。在C語言中,只有零代表假(false),其他非零數都代表真(true)。但在正常運算中,以1代表真。

相等運算

相等運算有兩種,分別是等於運算子(==)以及不等於運算子(!=)
指派運算子(=)「不是」等於運算子(==)
在運算中,如果關係成立,得到真值(1);若不成立,得到假值(0)。
例如
#include <stdio.h> int main() { printf("%d, %d, %d\n", 3==2, 4!=6, (1+4)==(3+5)); return 0; }
執行結果
0, 1, 0

比較運算

比較運算有四種,分別是大於(>)、小於(<)、大於或等於(>=)、小於或等於(<=)。在運算中,若關係成立,得到真值(1);如果不成立,得到假值(0)。
#include <stdio.h> int main() { printf("%d, %d, %d\n", 4>5, 6<=7, 8 < 9); return 0; }
結果
0, 1, 1

常見誤解

假如還記得數學中有個遞移律的話,有些人可能會寫出
if (3>2>1) { ... }
這樣可是會出問題的!我們看看電腦怎麼判斷這個運算。首先因為比較運算是由左而右,所以會先計算「3>2」,得到,但是依照我們前面所敘述,其實就是1,所以整個程式就會變成
if (1>1) { ... }
很顯然這是錯誤的,所以一定要注意。
很多數學直覺在電腦上不適用
至於要怎麼解決呢?我們以後的邏輯運算可以處裡這類問題。




👉【幫我們一個忙!】👈

👋如果您喜歡這篇文章,請在下方按5個Like!
 ❤您的支持是我們最大的動力!

您只要登入帳號(Facebook、Google),在下方按5個Like,我們就會收到來自LikeCoin基金會的贊助。
您只需要支持我們,完全不會花到錢!