關系表達式和邏輯表達式_第1頁
關系表達式和邏輯表達式_第2頁
關系表達式和邏輯表達式_第3頁
關系表達式和邏輯表達式_第4頁
關系表達式和邏輯表達式_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計,關系表達式和邏輯表達式,術語“控制流”(Flow Of Control)是指程序語句執(zhí)行的順序。除非特別指定,否則所有程序的正常控制流都是順序的(這意味著每個語句都是順序執(zhí)行的,一個接一個地按照它們在程序中的順序執(zhí)行)。 選擇語句和重復(循環(huán))語句都允許程序員改變控制流的正常順序,正如它們的名稱所暗示的,選擇語句提供了從一組設計良好的語句組中選擇接下來將要執(zhí)行的語句的能力;而重復語句提供了轉(zhuǎn)回來重復執(zhí)行一組語句的能力。 所有的程序都由這這三種(順序、選擇、循環(huán))控制結(jié)構(gòu)構(gòu)成,這就是結(jié)構(gòu)化程序設計中的一個重要原則。, 控制流(程序流), 順序結(jié)構(gòu),順序流程意味著每個語句都是順序執(zhí)

2、行的,一個接一個地按照它們在程序中的順序執(zhí)行,且只執(zhí)行一次。, 選擇(分支)結(jié)構(gòu),選擇(分支)結(jié)構(gòu)提供了從一組設計良好的語句組中選擇接下來將要執(zhí)行的語句的能力, 循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)提供了轉(zhuǎn)回來重復執(zhí)行一組語句的能力。,在我們編寫程序的時候,需要控制程序根據(jù)條件來選擇執(zhí)行相關的操作。很多時候,需要判斷的條件往往不止一個,比如從鍵盤輸入一個數(shù),我們要判斷它是否大于0,并且小于10,這里的“大于”,“小于”就是關系運算,“并且”就是邏輯運算。 C語言為我們提供了邏輯運算和關系運算,用它們構(gòu)成復雜的控制條件,來實現(xiàn)程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。, 程序設計條件的表示,關系運算和我們數(shù)學中的比較運算基本一致

3、,它們用于兩個操作數(shù)(整數(shù)、浮點數(shù)、字符數(shù)據(jù))的比較。 C語言為我們提供了6種關系運算符:, 關系運算符和關系表達式,關系運算符都雙目運算符,滿足從左到右的結(jié)合律。它們的優(yōu)先關系如下: 1、關系運算符的優(yōu)先級要低于算術運算符。比如語句:c=b+2;則先計算 b+2 的值,再和c比較。 2、關系運算符的優(yōu)先級高于賦值運算符。比如語句“a=bc;”,先進行關系運算“bc”,成立(真),則bc值為1,不成立(假),則bc值為0;然后再做賦值運算,把1或0賦值給a。 3、關系運算符、=、=的優(yōu)先級要高于=、!=的優(yōu)先級,同級之間優(yōu)先級相同。比如語句“ca!=b;”,先計算“ca”,再算“!=”的值,等

4、價于“(ca)!=b”。4、除了數(shù)學運算對象之外,還可以使用關系運算符來比較字符數(shù)據(jù),char 值將被強制轉(zhuǎn)換成 int 值以進行比較。 5、不能直接使用關系運算符比較字符串。, 關系運算符的運算,關系表達式就是用關系運算符把兩個表達式連接起來的式子,它的一般形式是: 表達式1關系運算符表達式2 例如,判斷一個學生成績是否及格。定義變量:score 表示學生成績,判斷“score=60”表達式是否為真,為真其就是1,為假就是0。 當 score = 86,“score=60”為“真”,表達式的值為1; 當 score = 54,“score=60”為“假”,表達式的值為0; 總結(jié)來講,關系表達

5、式的值只有兩種可能:關系成立,則關系表達的值為“真”(值為1);關系不成立,則關系表達式的值為“假”(值為0)。在C語言中用非 0 值表達“真”,用 0 表達“假”。, 關系表達式,想要判斷整數(shù) sum 的取值是否滿足:0sum 100;千萬不能寫成“0=0 并且 sum=100 來表達。也就是說,除了使用關系表達式表示簡單的條件以外,還可以使用邏輯運算與、或、非來創(chuàng)建更為復雜的條件。, 邏輯運算符和邏輯表達式,C語言的邏輯運算符有3種:, 邏輯運算符,邏輯與運算符&是用于兩個關系表達式時,只有當每個表達式都為“真”時該條件才為“真”。 邏輯或運算符|也是用于兩個表達式的,只要兩個表達式至少有

6、一個是“真”,該條件就為“真”。 非運算符!將把表達式更改為它的相反狀態(tài),也就是就,如果表達式為“真”,那么它的非運算的值就為“假”;如果表達式開始為“假”,那么它的非運算的值就為“假”。,前面表格中的“ a13 & d20 ” 就是邏輯表達式,邏輯表達式的值取1(真),或者0(假)。 一個邏輯表達式可以包含多個邏輯運算符,它們的優(yōu)先級順序是:“!”的優(yōu)先級最高,“&”次之,“|”的優(yōu)先級最低。邏輯運算符“&”、“|”的優(yōu)先級低于所有關系運算符,而“!”的優(yōu)先級高于所有算術運算符。,邏輯表達式,使用C的關系運算表達式可能會遇到與浮點數(shù)(單精度或雙精度)相關的微妙的數(shù)學精度問題。因為計算機存儲這

7、些數(shù)據(jù)的方式不同,所以應該避免使用關系運算符“=”來衡量浮點數(shù)的等同關系,原因是,很多十進制小數(shù)(例如:0.1)不能使用有限的位數(shù)精確地以二進制表示,因此,要測試這些數(shù)字的完全等同關系將會失敗。當需要測試非整數(shù)值的等同關系時,最好要求運算對象之差的絕對值小于一個非常小的值,因此,對于實際的運算對象,常規(guī)表達式 operandOne = operandTwo 應該被下面的條件所取代 fabs(operandOne-operandTwo) EPSILON 其中 EPSILON 是一個被設置為任意可接受的足夠小的值(如0.0000001或其他用戶選定的值)的命名常量。因此,如果兩個運算對象之差小于E

8、PSILON的值,那么這兩個運算對象被認為是最基本相等。,數(shù)學的精度問題,例: 如果x和y是浮點變量,那么條件 x/y = 0.35 應該以下面的方式來編程: abs(x/y-0.35) 0.0000001 其后面的條件可以確保以二進制非整數(shù)數(shù)字所帶來的少量誤差不會影響到測試條件的賦值結(jié)果。,數(shù)學的精度問題舉例,編寫用來表示下列條件的關系表達式或邏輯表達式(使用你自己選擇的變量名): 一個人的年齡為30歲 age = 30 一個人的體溫大于98.6華氏度 heat 98.6 一個人的身高小于6英尺 height 6.0 目前為12月 month = 12 輸入的字母為m key = m,編寫條件的練習(一), 一個人的年齡為30歲且身高大于6尺 age=30 & height6 語文成績80分以上或且數(shù)學成績80分以上(含80分) chinese=80 | math=80 目前為1月15日 month=1 & day=15 0 x100 x=0 & x5 | x25 年份為閏年 (year%4=0 & year%100!=0) | year%400=0, 編寫條件的練習(二), 整數(shù)x大于5 x5 或 x=6 e不等于0(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論