C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句_第1頁(yè)
C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句_第2頁(yè)
C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句_第3頁(yè)
C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句_第4頁(yè)
C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1C語(yǔ)言第講關(guān)系運(yùn)算與邏輯運(yùn)算if語(yǔ)句4.1.1邏輯值及其在C語(yǔ)言中的表示

關(guān)系運(yùn)算和邏輯運(yùn)算的運(yùn)算結(jié)果都是一個(gè)邏輯值,邏輯值只有兩個(gè)值,即:“真”和“假”。在C語(yǔ)言中,用數(shù)值1來(lái)表示“真”,用數(shù)值0來(lái)表示“假”。因此邏輯值也可以作為一個(gè)整數(shù)參與算術(shù)運(yùn)算。反之,對(duì)于參與關(guān)系運(yùn)算或邏輯運(yùn)算的任意一個(gè)表達(dá)式,如果該表達(dá)式的值為零,就代表一個(gè)邏輯“假”值;只要表達(dá)式的值不是零,無(wú)論是正數(shù)還是負(fù)數(shù),都代表一個(gè)邏輯“真”值。第1頁(yè)/共19頁(yè)4.1.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式

所謂“關(guān)系運(yùn)算”實(shí)際上就是“比較運(yùn)算”,即將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定兩個(gè)數(shù)據(jù)是否符合給定的關(guān)系。例如,“a>b”中的“>”表示一個(gè)大于關(guān)系運(yùn)算。如果a的值是8,b的值是5,則這個(gè)關(guān)系運(yùn)算的結(jié)果為“真”,即數(shù)值1,表示條件成立;如果a的值是6,b的值是9,則運(yùn)算的結(jié)果為“假”,即數(shù)值0,表示條件不成立。第2頁(yè)/共19頁(yè)1.關(guān)系運(yùn)算符及其優(yōu)先級(jí)C語(yǔ)言提供了六種關(guān)系運(yùn)算符,如表4.1所示。

注意:有些運(yùn)算符是由兩個(gè)字符組合而成的,如:<=;其兩個(gè)字符之間不能有空格。在關(guān)系運(yùn)算符中,前4個(gè)優(yōu)先級(jí)相同,后2個(gè)也相同,且前4個(gè)關(guān)系運(yùn)算符的優(yōu)先級(jí)高于后2個(gè)。

所有關(guān)系運(yùn)算符的優(yōu)先級(jí)都比算術(shù)運(yùn)算符的優(yōu)先級(jí)低、但都比賦值運(yùn)算符的優(yōu)先級(jí)高。表4.1關(guān)系運(yùn)算符及其優(yōu)先級(jí)109第3頁(yè)/共19頁(yè)2.關(guān)系表達(dá)式

用關(guān)系運(yùn)算符將兩個(gè)操作數(shù)(常量、變量或表達(dá)式)連接起來(lái),進(jìn)行關(guān)系運(yùn)算的式子,稱(chēng)為關(guān)系表達(dá)式。例如,假設(shè)n1=5,n2=8,n3=10,則:(1)關(guān)系表達(dá)式n1==n2的值為0。(2)關(guān)系表達(dá)式n1<=n3的值為1。(3)關(guān)系表達(dá)式n1+n2>n3的值為1。(4)關(guān)系表達(dá)式n1==

n2>n3的值等為0。注意:由于存在存儲(chǔ)誤差和轉(zhuǎn)換誤差,不能直接用關(guān)系運(yùn)算符“==”來(lái)判斷兩個(gè)實(shí)型數(shù)是否相等。單精度實(shí)數(shù):fabs(x-y)<0.000001

雙精度實(shí)數(shù):fabs(a-b)<1e-14第4頁(yè)/共19頁(yè)1.邏輯運(yùn)算符及其優(yōu)先級(jí)

C語(yǔ)言提供了三種基本的邏輯運(yùn)算符。邏輯代數(shù)的其它邏輯運(yùn)算都可以轉(zhuǎn)化為這三種邏輯運(yùn)算的組合。4.1.3邏輯運(yùn)算符與邏輯表達(dá)式優(yōu)先級(jí)次序:!(邏輯非)14算術(shù)運(yùn)算符13/12關(guān)系運(yùn)算符10/9&&(邏輯與)5||(邏輯或)4賦值運(yùn)算符2

表4.2邏輯運(yùn)算符及其優(yōu)先級(jí)14右結(jié)合45第5頁(yè)/共19頁(yè)2.邏輯表達(dá)式

由邏輯運(yùn)算符和運(yùn)算對(duì)象所組成的表達(dá)式稱(chēng)為邏輯表達(dá)式。邏輯運(yùn)算的對(duì)象可以是C語(yǔ)言中任意合法的表達(dá)式。例如:在關(guān)系表達(dá)式(x>y)為真的條件下,若a值為10,b值為16,表達(dá)式(a>b)&&(x>y)的值為“假”,用數(shù)值0來(lái)表示;若a值為10,b值為6,表達(dá)式(a>b)&&(x>y)的值則為“真”,用數(shù)值1來(lái)表示。表4.3邏輯運(yùn)算符的運(yùn)算規(guī)則第6頁(yè)/共19頁(yè)

數(shù)學(xué)表達(dá)式0<x<10表示x的值應(yīng)該在0到10的范圍內(nèi)。但在C語(yǔ)言中不能用0<x<10這樣一個(gè)關(guān)系表達(dá)式來(lái)表述以上的數(shù)學(xué)關(guān)系。因?yàn)闊o(wú)論x是什么值,按照C語(yǔ)言的運(yùn)算規(guī)則,左邊的表達(dá)式0<x的運(yùn)算結(jié)果只能為0或1,因而表達(dá)式0<x<10的運(yùn)算結(jié)果總是1。只有用邏輯表達(dá)式0<x&&x<l0才能正確地表述以上數(shù)學(xué)關(guān)系。用邏輯表達(dá)式來(lái)表示多個(gè)條件的組合如判斷一個(gè)年份是否是閏年的邏輯表達(dá)式為:(year%4==0)&&(year%100!=0)||(year%400==0)第7頁(yè)/共19頁(yè)“非完全求解”法:當(dāng)求出某個(gè)邏輯運(yùn)算符的左邊的運(yùn)算量的值就能夠明確地確定這個(gè)邏輯運(yùn)算的結(jié)果時(shí),就結(jié)束求解過(guò)程,直接給出運(yùn)算結(jié)果。例如:(1)a&&b&&c

若a為“假”,直接求得a&&b及整個(gè)表達(dá)式的值為“假”;

若a為“真”,b為“假”,a&&b及整個(gè)表達(dá)式的值為“假”。只有當(dāng)a為“真”時(shí),才需要判別b的值;只有當(dāng)a&&b的值為“真”時(shí),才需要判別c的值。(2)a||b||c

若a為“真”,直接求得a||b及整個(gè)表達(dá)式的值為“真”;若a為“假”,b為“真”,a||b及整個(gè)表達(dá)式的值為“真”;只有當(dāng)a為“假”時(shí),才需要判別b的值;只有當(dāng)a||b的值為“假”時(shí),才需要判別c的值。邏輯表達(dá)式的“非完全求解”法第8頁(yè)/共19頁(yè)例:“非完全求解”#include"stdio.h"voidmain(){intx,a,b,c;a=1;b=2;c=3;x=(a-1)&&(++b)&&(++c);printf("1:a=%d,b=%d,c=%d,x=%d\n",a,b,c,x);a=1;b=2;c=3;x=a&&(b-2)&&(++c);printf("2:a=%d,b=%d,c=%d,x=%d\n",a,b,c,x);a=1;b=2;c=3;x=a&&(++b)&&(++c);printf("3:a=%d,b=%d,c=%d,x=%d\n",a,b,c,x);}第9頁(yè)/共19頁(yè)4.2if語(yǔ)句1.if語(yǔ)句的一般形式

if(表達(dá)式)

語(yǔ)句1

[else

語(yǔ)句2]

if語(yǔ)句可以根據(jù)給定的條件進(jìn)行判斷,決定執(zhí)行某個(gè)分支程序段,以實(shí)現(xiàn)選擇結(jié)構(gòu)的程序設(shè)計(jì)。表達(dá)式可以是任何類(lèi)型的C表達(dá)式語(yǔ)句1、語(yǔ)句2都可以是復(fù)合語(yǔ)句else子句不能單獨(dú)使用(可選)

if語(yǔ)句的執(zhí)行過(guò)程:先求表達(dá)式的值第10頁(yè)/共19頁(yè)main(){intn1,n2,n3,max;printf("Pleaseinputthreenumbers:");scanf("%d,%d,%d",&n1,&n2,&n3);

if(n1>n2)

max=n1;

else

max=n2;

if(n3>max)

max=n3;printf("max=%d\n",max);}程序運(yùn)行情況如下:Pleaseinputthreenumbers:11,22,18<CR>max=22例4.1輸入三個(gè)整數(shù),求最大值/*簡(jiǎn)化形式*/max=n1;if(n2>max)max=n2;第11頁(yè)/共19頁(yè)例4.2輸入三個(gè)整數(shù),在變量a,b,c中排序main(){inta,b,c,t;printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("a=%d,b=%d,c=%d\n",a,b,c);}程序運(yùn)行情況如下:inputa,b,c:623424<CR>a=62,b=34,c=24a=24,b=34,c=62第12頁(yè)/共19頁(yè)if語(yǔ)句中的if子句和else子句可以是任意合法的C語(yǔ)句,當(dāng)然也可以是另外一個(gè)if語(yǔ)句,通常稱(chēng)這種語(yǔ)句為嵌套的if語(yǔ)句。

內(nèi)嵌的if語(yǔ)句既可以嵌套在if子句中,也可以嵌套在else子句中。在運(yùn)用嵌套的if語(yǔ)句時(shí),應(yīng)該特別注意else子句和if子句的配套問(wèn)題。如果在嵌套的if語(yǔ)句中沒(méi)有用一對(duì)花括號(hào)強(qiáng)制地結(jié)束某個(gè)內(nèi)嵌的不帶else子句的if語(yǔ)句,則else子句總是與在它前面的、離它最近的、尚未與其它else子句匹配的if子句相匹配。以下介紹兩種值得關(guān)注的嵌套if語(yǔ)句。2.嵌套的if語(yǔ)句第13頁(yè)/共19頁(yè)

在if語(yǔ)句的else子句中嵌套多個(gè)具有else子句的if語(yǔ)句語(yǔ)句形式如下:if(表達(dá)式1)語(yǔ)句1else

if(表達(dá)式2)語(yǔ)句2

else

if(表達(dá)式3)語(yǔ)句3

elseif(表達(dá)式4)語(yǔ)句4...

else語(yǔ)句n

執(zhí)行過(guò)程:從上向下逐一對(duì)if后的表達(dá)式進(jìn)行檢測(cè),當(dāng)其中某一個(gè)表達(dá)式的值為非零時(shí),就執(zhí)行與之對(duì)應(yīng)的if子句,階梯形子句中的其余部分就被跳越過(guò)去。如果所有表達(dá)式的值都為零,則執(zhí)行最后的else子句,即語(yǔ)句n;如果最內(nèi)層的if語(yǔ)句沒(méi)有else子句,那么將不進(jìn)行任何操作。(1)用嵌套的if語(yǔ)句形成多分支語(yǔ)句第14頁(yè)/共19頁(yè)例4.3

編寫(xiě)程序,根據(jù)輸入的學(xué)生成績(jī),給出相應(yīng)的等級(jí)。90分以上的等級(jí)為A,60分以下的等級(jí)為E,其余每10分為一個(gè)等級(jí)。main(){intg;

printf("Enterg:");scanf("%d",&g);printf("g=%d:",g);

if(g>=90)printf("A\n");

else

if(g>=80)printf("B\n");

else

if(g>=70)printf("C\n");

elseif(g>=60)printf("D\n");elseprintf("E\n");}程序運(yùn)行情況如下:Enterg:78<CR>g=78:C第15頁(yè)/共19頁(yè)(2)在if子句中嵌套不含else子句的if語(yǔ)句

用花括號(hào)把內(nèi)層if語(yǔ)句括起來(lái)后,使得此內(nèi)層if語(yǔ)句在語(yǔ)法上成為一條獨(dú)立的語(yǔ)句,從而使得else子句只能與外層的if配對(duì)。注意:if子句中的花括號(hào)

if(表達(dá)式1)

if(表達(dá)式2)

語(yǔ)句1

else

語(yǔ)句2語(yǔ)句形式如下:if(表達(dá)式1)

{if(表達(dá)式2)語(yǔ)句1}els

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論