




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章選擇結(jié)構(gòu)程序設計
關(guān)系運算符和關(guān)系表達式
邏輯運算符和邏輯表達式if語句switch語句選擇結(jié)構(gòu)程序設計關(guān)系運算符和關(guān)系表達式關(guān)系運算符及其優(yōu)先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)優(yōu)先級相同(高)優(yōu)先級相同(低)說明:關(guān)系運算符的優(yōu)先級低于算術(shù)運算符關(guān)系運算符的優(yōu)先級高于賦值運算符關(guān)系運算符和關(guān)系表達式關(guān)系表達式用關(guān)系運算符將兩個表達式(算術(shù)表達式或關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式)接起來的式子,稱關(guān)系表達式.例:a>b,a+b>b+c,(a=3)>(b=5),‘a(chǎn)’<‘b’(a>b)>(b<c)關(guān)系表達式的值是一個邏輯值,即“真”或“假”C語言中沒有專用的邏輯值,1代表真,0代表假關(guān)系運算符和關(guān)系表達式注意結(jié)合方向:從左至右C語言中的關(guān)系表達式與數(shù)學上的表達式含義不同:例如:
1)
a<=x<=b與數(shù)學上的(a≤x≤b) 2)
數(shù)學上5>2>7>8是非法的,但在C語言中是合法的關(guān)系表達式可以參與算術(shù)運算:例如:inti=1,j=7; a=i+(j%4!=0);
a=?實數(shù)的判別:
例如:1.0/3*3==1.01.0/3==0.33333關(guān)系運算符和關(guān)系表達式注意:表達式:a=b
和a==b的區(qū)別例如:假設定義:inta=3,b=5;if(a=b)printf(“a和b相等\n”);elseprintf(“a和b不相等\n”);if(a==b)printf(“a和b相等\n”);elseprintf(“a和b不相等\n”);a=?b=?55a=?b=?35邏輯運算符和邏輯表達式1.邏輯運算符及其優(yōu)先次序(1)&&(邏輯與)相當于其他語言中的AND(2)||(邏輯或)相當于其他語言中的OR(3)!(邏輯非)相當于其他語言中的NOT例:a&&b若a,b為真,則a&&b為真。a||b若a,b之一為真,則a||b為真。!a若a為真,則!a為假。優(yōu)先次序:!(非)->&&(與)->||(或):從高到低邏輯運算符中的“&&”和“||”低于關(guān)系運算符,“!”高于算術(shù)運算符邏輯運算符和邏輯表達式
2.邏輯表達式用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就是邏輯表達式。邏輯表達式的值應該是一個邏輯量“真”或“假”。例:設a=4,b=5:!a的值為a&&b的值為a||b的值為!a||b的值為4&&0||2的值為任何非零的數(shù)值被認作“真”01110邏輯運算符和邏輯表達式
例:5>3&&8<4-!0
自左向右運算
1&&0邏輯值為08<3邏輯值為04-1值為3!0邏輯值為15>3邏輯值為1表達式值為0邏輯運算符和邏輯表達式
系統(tǒng)對邏輯表達式的優(yōu)化:(1)a&&b&&c只有a為真時,才需要判斷b的值,只有a和b都為真時,才需要判斷c的值。(2)a||b||c只要a為真,就不必計算b和C。例:(m=a>b)&&(n=c>d)當a=1,b=2,c=3,d=4,m和n的原值為1時,n=?由于“a>b”的值為0,因此m=0,而“n=c>d”不被執(zhí)行,因此n的值不是0而仍保持原值1。邏輯運算符和邏輯表達式main(){ inta,b,c; a=b=c=-1; ++a||++b&&++c; printf(“a=%d,b=%d,c=%d\n”,a,b,c); a=b=c=-1; a++&&b++||c++; printf(“a=%d,b=%d,c=%d\n”,a,b,c); a=b=c=-1; ++a&&++b&&++c; printf(“a=%d,b=%d,c=%d\n”,a,b,c);}a=0,b=0,c=-1a=0,b=0,c=-1a=0,b=-1,c=-1例:一些常用的邏輯表達式寫出滿足下列要求的表達式
⑴ch是小寫英文字母 ch>='a'&&ch<='z' ⑵x為零 關(guān)系表達式x==0
x取0!x真x取非0!x假x取0x==0真x取非0x==0假⑶x不為零x!=0或x等價
邏輯表達式!x驗證:例:一些常用的邏輯表達式(4)x和y不同時為零x!=0||y!=0或x||y(5)year是閏年,即year能被4整除但不能被100整除,或year能被400整除。(year%4==0&&year%100!=0)||(year%400==0)
或(!(year%4)&&year%100)||!(year%400)例:一些常用的邏輯表達式判斷年齡在13至17歲之內(nèi)?age>=13&&age<=17非13<=age<=17//數(shù)學意義上的表達式判斷年齡小于12或大于65?age<12||age>65注意:數(shù)學意義上的表達式與C語言中的表達式的區(qū)別if語句if語句的三種形式:形式一:格式:if(expression)
{statement}執(zhí)行過程:例:if(x>y){
printf(“%d”,x);}exprstatement非0=0if語句if語句的三種形式:形式二:格式:if(expression)
{statement1}else
{statement2}執(zhí)行過程:例:if(x>y)max=x;elsemax=y;exprstatement1statement2非0=0if語句if語句的三種形式:形式三:格式:執(zhí)行過程:expr1statement1非0=0expr2expr3statementnstatement3statement2非0非0=0=0if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]例:if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;例:求最大值輸入3個數(shù),輸出其中的最大值。#include<stdio.h>voidmain(){
inta,b,c,max;
\\變量定義
printf(“input3integers:\n”);
\\提示輸入三個數(shù)scanf("%d%d%d",&a,&b,&c);max=a;
\\設置最大值if(max<b)
max=b;if(max<c)
max=c;printf("maxis%d\n",max);}amaxbcmaxmaxIf語句的說明如:if(a==b&&x==y)
printf(“a=b,x=y”);
if(3)
printf(“OK”);if(‘a(chǎn)’)
printf(“%d”,’a’);說明:if后面的表達式類型任意語句可以是復合語句if(x)if(x!=0)if(!x)if(x==0)例考慮下面程序的輸出結(jié)果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!例判斷輸入字符種類/*ch4_3.c*/#include<stdio.h>main(){charc;printf("Enteracharacter:");c=getchar();if(c<0x20)printf("Thecharacterisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thecharacterisadigit\n");elseif(c>='A'&&c<='Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\n");}運行:Enteracharacter:Thecharacterisacontrolcharacter運行:Enteracharacter:8Thecharacterisadigit運行:Enteracharacter:DThecharacterisacapitalletter運行:Enteracharacter:hThecharacterisalowerletter運行:Enteracharacter:F1ThecharacterisothercharacterIf語句嵌套:if(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4內(nèi)嵌if內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement2內(nèi)嵌ifif(expr1){if(expr2)statement1}elsestatement3內(nèi)嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4內(nèi)嵌ifif–else的匹配規(guī)則匹配規(guī)則缺省{}時,else總是和它上面離它最近的未配對的if配對if(……)if(……)if(……)else…...else…...else…...else和if的匹配if(exp_1)if(exp_2)statement_1elsestatement_2else
if(exp_3)statement_3elsestatement_4if(exp_1)if(exp_2)statement_1elseif(exp_3)statement_3elsestatement_4注意:else與最靠近它的、沒有與別的else匹配過的if匹配if(exp_1)if(exp_2)statement_1elseif(exp_3)statement_3elsestatement_4例:if-else匹配例:if(a==b)if(b==c)
printf(“a==b==c”);elseprintf(“a!=b”);修改:if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);實現(xiàn)if~else正確配對方法:加{}例:if-else匹配例考慮下面程序輸出結(jié)果:
main(){intx=100,a=10,b=20;intv1=5,v2=0;if(a<b)if(b!=15)if(!v1)x=1;elseif(v2)x=10;x=-1;printf(“%d”,x);}結(jié)果:-1條件表達式條件運算符——唯一的三目運算符exp1?exp2:exp3說明: 條件運算符的執(zhí)行順序:先求exp1,如果為非0(真)則求解exp2,并以exp2作為條件表達式的值;否則求解exp3,并以exp3作為條件表達式的值非00exp1條件表達式例如:y=(x>0)?x+2:x*x;if(x>0)y=x+2;elsey=x*x;x+2x>0y=x2x<=0條件表達式的結(jié)合方向:從右至左例如:x=3;y=5;k=0;求表達式:x>y?k++:x>2?y++:x++的結(jié)果可能性一:(x>y)?k++:(x>2?y++:x++)可能性二:(x>y?k++:x>2)?y++:x++正確錯誤switch語句一般形式:執(zhí)行過程:switch(表達式){caseE1:語句組1;breakcaseE2:語句組2;break;…….caseEn:語句組n;break;[default:語句組;;]}switch表達式語句組1語句組2語句組n語句組…...E1E2Endefaultcaseswitch語句說明說明:E1,E2,…En是常量表達式,且值必須互不相同每個case層用break跳出,否則就接著執(zhí)行下一個case層case后可包含多個可執(zhí)行語句,且不必加{}switch可嵌套多個case可共用一組執(zhí)行語句如:……case‘A’:case‘B’:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司月度獎懲活動方案
- 公司消防比賽活動方案
- 公司盆栽種植活動方案
- 公司相親對象活動方案
- 公司現(xiàn)場招聘會策劃方案
- 公司組織溫泉玩活動方案
- 公司活動方案獎勵方案
- 公司行政生日會策劃方案
- 公司教育活動策劃方案
- T/CSPSTC 112-2023氫氣管道工程施工技術(shù)規(guī)范
- 當代世界政治經(jīng)濟與國際關(guān)系 鄧澤宏課件第三章 奉行全球戰(zhàn)略的美國
- 2023年沈陽職業(yè)技術(shù)學院高職單招(數(shù)學)試題庫含答案解析
- 2022版義務教育(勞動)課程標準(含2022年修訂部分)
- 洛陽市中小學教師師德師風考核內(nèi)容和評分細則
- 承包商資質(zhì)審查表
- 應急救援物資檢查維護保養(yǎng)記錄表(月度)
- 機械原理課程設計-沖壓機構(gòu)及送料機構(gòu)設計說明書
- 押金收據(jù)條(通用版)
- [甘肅]最新甘肅省造價文件匯編(310頁)
- 鋼框架結(jié)構(gòu)計算書畢業(yè)設計
評論
0/150
提交評論