人人學編程 C語言入門 學會這些,讓你寫的程序更有邏輯性

編程語言 C語言 數學 教育 人生算法 人生算法 2017-09-02

人人學編程 C語言入門 學會這些,讓你寫的程序更有邏輯性

週末愉快


相關鏈接: 程序中的多條件判斷

相關鏈接:程序中的分支和跳轉


摘要: C提供一種簡寫方式來表示if else語句的一種形式。這被稱為條件表達式,並使用條件運算符(? :)。

這是個有三個操作數的分兩部分的運算符。有三個操作數的運算符就稱為三元運算符。下面是一個得到一個數的絕對值的例子:

x = (y<0) ? -y : y ;

等號和分號之間就是條件表達式。以if else的語法可以這樣寫:

if (y<0)

x = -y;

else

x = y;

下面是條件表達式的一般形式:

expression1 ? expression2 : expression3

如果1為真,整個條件表達式的值和2的值相同。如果1為假,整個條件表達式的值等於3的值。

當希望將兩個可能的值中的一個賦給變量時,可以使用條件表達式。典型的例子是將兩個值中的最大值賦給變量:

max = (a>b) ? a : b;

如果a>b,那麼max的值等於a,否則等於b。

一個噴漆程序的例子:

這個程序計算向給定的平方英尺的面積塗漆,全部塗完需要多少罐油漆。基本的數學法則很簡單:用平方英尺數除以每罐能塗抹的平方英尺數。但是假設結果是1.7罐會怎麼樣?商店整罐賣漆,而不拆開賣,所以必須買兩罐。所以程序在得到非整數罐的結果時應該進1。條件運算符常用於處理這種情況,而且在適當的時候也用來打印can或cans。

人人學編程 C語言入門 學會這些,讓你寫的程序更有邏輯性

上例表明,條件運算符也可以使用字符串作為它的第二個和第三個操作數。


摘要: C有三個邏輯運算符:與&&、或||、非!

假設需要編寫一個程序,用來計算在一個輸入的句子中,除單引號和雙引號以外的字符出現了多少次。可以用邏輯運算符來實現該目的,可以用英文的句號來標識一個句子的結束。

程序 chcount.c

人人學編程 C語言入門 學會這些,讓你寫的程序更有邏輯性

邏輯運算符的優先級低於關係運算符,所以不必使用圓括號組合表達式。

C的邏輯運算符

運算符含義
&&
||
!

假設A和B是兩個簡單的關係表達式,那麼可以聲明如下:

*僅當A和B都為真時,A&&B才為真。

*如果A為真或B為真或二者都為真,A||B為真。

*如果A為真,!A為假;如果A為假,!A為真。

  • 改變拼寫法:iso646.h

C99標準為邏輯運算符增加了可供選擇的拼寫法。它們在iso646.h頭文件中定義。

表7.4 邏輯運算符的可選表示法

傳統的iso646.h
&&and
||or
not
  • 優先級

!運算符擁有最高的優先級,它高於乘法運算,和增量運算符的優先級相同,僅次於圓括號。&&運算符的優先級高於||,這二者的優先級都低於關係運算符而高於賦值運算符。

  • 求值的順序

C保證邏輯運算符是從左到右求值的。&&和||運算符是序列的分界點,因此在程序從一個操作數前進到下一個操作數之前,所有的副作用都會生效。而且,C保證一旦發現某個元素使表達式總體無效,求值將立刻停止。

  • 範圍

可以把&&運算符用於測試範圍。例如:range>=90 && range<=100,千萬不要像數學上這樣寫90<=range<=100。


下節預告:程序忽略和程序終止

人人學編程 C語言入門 學會這些,讓你寫的程序更有邏輯性

走進計算機必學語言

相關推薦

推薦中...