版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第四章選擇結構
選擇結構也稱分支結構。它有選擇地(依據(jù)一定的條件)執(zhí)行一個語句或執(zhí)行兩個或多個語句中的某一個語句。
C語言中表示選擇結構的語句是if、ifelse和switch語句第四章選擇結構
一、if語句
if語句的語法形式為:
if(表達式) 語句 語義:如果表達式的值不等于0(稱條件為真),則執(zhí)行“語句”,否則“語句”不被執(zhí)行。
if語句中的表達式就是條件,語法規(guī)定,表達式必須加括號。
表達式后的語句稱為內(nèi)嵌語句,可以是任意C合法語句。表達式內(nèi)嵌語句
例:從鍵盤輸入一個整數(shù),如果小于60則輸出該數(shù),否則不輸出。#include<stdio.h>voidmain(){ inta; scanf("%d",&a); if(a<60) printf("a=%d\n",a);//該語句是否執(zhí)行,由a的值決定}例:輸入任意兩個整數(shù),先輸出小數(shù),再輸出大數(shù)。#include<stdio.h>voidmain(){ inta,b,t; scanf("%d%d",&a,&b); if(a>b) {t=a; a=b; b=t; }//注意加大括號
printf("%d\t%d\n",a,b);
}第四章選擇結構作為條件的表達式可以是算術表達式,但最常見的是:
關系表達式和邏輯表達式。二、關系表達式關系運算符:>>=<<===!=關系運算符的運算對象是算術表達式(包括變量和常量)。關系表達式的運算結果是0或者1。例:voidmain(){ inta=3,b; b=a!=3; printf("b=%d\n",b); b=a==3;//注意=和==的區(qū)別
printf("b=%d\n",b);}三、邏輯表達式邏輯運算符:||&&!邏輯運算符的運算對象一般是關系表達式。例如:輸入一個整數(shù),如果在56~59之間,則輸出該數(shù)。voidmain(){inta; scanf("%d",&a); if(a>=56&&a<60)//不能寫成:56<=a<60 printf("a=%d\n",a);}例如:輸入一個整數(shù),如果該數(shù)小于60或大于90,則輸出。voidmain(){ inta; scanf("%d",&a); if(a<60||a>=90) printf("a=%d\n",a);}邏輯運算符的優(yōu)先級和結合性優(yōu)先級從高到低的次序為
!,算術運算符,關系運算符,&&,||,賦值運算符
例如:a=f>0||b+!c<d&&e>0結合性:&&和||是左結合的,!是右結合的。
例如:a>0&&b>0&&c>0!++a在C語言中,非0為真,0為假。關系表達式和邏輯表達式的計算結果為1或0,表示真或假inta=5,b=8;if(a)printf(“表達式a的結果為真”);if(a==5&&b)printf(“表達式(a==5&&b的結果為真”);
在計算含有&&和||運算符的邏輯表達式時,C語言規(guī)定:只對能夠確定整個表達式值所需要的最少數(shù)目的子表達式進行計算。
也就是說,當按運算規(guī)則計算出一個子表達式的值之后便可以確定整個邏輯表達式的值時,后面的子表達式就不需要再計算了。intx=2;printf(“%d“,0&&(x=6));/*輸出0*/printf(“x=%d”,x);/*輸出x=2*/printf(“%d“,‘0’&&(x=6));/*輸出1*/printf(“x=%d”,x);/*輸出x=6*/測試一個正整數(shù)是否能被另一個正整數(shù)整除。intn,d;scanf(“%d,%d”,&n,&d);if(n%d)printf(“%d不能被%d整除.\n”,n,d);或寫成if(n%d!=0)printf(“%d不能被%d整除.\n”,n,d);if(n%d!=0)printf(“%d不能被%d整除.\n”,n,d);elseprintf(“%d能被%d整除.\n”,n,d);求三個整數(shù)的最小值inta,b,c,min;scanf(“%d,%d,%d”,&a,&b,&c);第一種辦法:min=a;if(min>b)min=b;if(min>c)min=c;第二種辦法:if(a<=b&&a<=c)min=a;if(b<=a&&b<=c)min=b;if(c>=a&&c<=b)min=c;第一種辦法的計算量比較小。注意:if(a>b);{temp=a;a=b;b=temp;}
變成兩條語句if(a>b);{temp=a;a=b;b=temp;}第四章選擇結構四、ifelse語句語法:if(表達式) 語句1else
語句2語義:如果表達式的值非0,則執(zhí)行“語句1”,否則執(zhí)行“語句2”。表達式內(nèi)嵌語句1內(nèi)嵌語句2例:輸入兩個整數(shù),輸出其中的較大者。程序1:main(){inta,b,max;scanf(“%d%d”,&a,&b);if(a>b)max=a;elsemax=b;printf(”max=%d\n”,max);}程序2:main(){inta,b;scanf("%d%d",&a,&b);if(a>b) printf("max=%d\n",a);else printf("max=%d\n",b);}例:輸入三個整數(shù),輸出其中最大者(求最小者?)。main(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);if(a>b) max=a;else max=b;if(max<c) max=c;printf("max=%d\n",max);}另一種寫法:min=a;if(min>b)min=b;第四章選擇結構五、if語句的嵌套if(表達式) 語句1else
語句2 在ifelse語句的語法中,語句1和語句2可以是任何可執(zhí)行語句,當然也可以是if語句。如果if語句的內(nèi)嵌語句又包含if語句,稱為if語句的嵌套。 通過if語句的嵌套,可以表示多分支結構。常用的幾種形式:if(表達式1){if(表達式2)
語句1}else
語句2if(表達式1){if(表達式2)
語句1else
語句2}else
語句3if(表達式1){if(表達式2)
語句1else
語句2}else{if(表達式3)
語句3else
語句4}大括號是必須的。大括號不是必須的。if(表達式1){if(表達式2)
語句1}else
語句2if(表達式1)if(表達式2)
語句1else
語句2if(表達式1)if(表達式2)
語句1else
語句2C語言規(guī)定,else總是與它上面最近的一個未配對的if配對。if語句的嵌套很容易令人混淆,應當特別注意if與else的配對關系。if(表達式1){if(表達式2)
語句1else
語句2}例:已知一元二次方程ax2+bx+c=0的系數(shù)a,b,c,求方程的根。 scanf("%f%f%f",&a,&b,&c); if(fabs(a)<1e-6) if(fabs(b)<1e-6) printf("方程無解"); else printf("方程有唯一解:%f",-c/b); else {d=b*b-4*a*c; if(d>=0){ x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("x1=%f\tx2=%f\n",x1,x2); } else {r=-b/(2*a); i=sqrt(-d)/(2*a); printf("x1=%f+%fi\n",r,i); printf("x2=%f-%fi\n",r,i); } }}if…elseif語句(多分支語句)if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3elseif(表達式4)
語句4else
語句5if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3elseif(表達式4)
語句4else
語句5多分支例子:學生百分制分數(shù)轉換成五級制成績。90~100分為A;80~89分為B;70~79分為C;60~69分為D,0~59分為E。scanf(“%d”,&score);if(score>100)printf(“Error:thescoreisoutofrange!\n”);elseif(score>=90)printf(“YourgradeisanA.\n”);elseif(score>=80)printf(“YourgradeisanB.\n”);elseif(score>=70)printf(“YourgradeisanC.\n”);elseif(score>=60)printf(“YourgradeisanD.\n”);elseprintf(“YourgradeisanE.\n”);編一程序,由鍵盤輸入字符,然后顯示該字符是否是一個數(shù)字字符,大寫字符,小寫字符、一個空格或其它字符。 charc=getchar(); if(c>=‘0’&&c<=‘9’) printf(“該字符是數(shù)字字符”); elseif(c>=‘A’&&c<=‘Z’) printf(“該字符是大寫字符”); elseif(c>=‘a(chǎn)’&&c<=‘z’) printf(“該字符是小寫字符”); elseif(c==‘’) printf(“該字符是空格字符”); else printf(“該字符是其它字符”);六、條件運算符與條件表達式條件運算符(三目運算符)?:條件表達式格式:表達式1?表達式2:表達式3條件表達式的結算結果:如果“表達式1”的值非0,取“表達式2”的值作為條件表達式的值,否則取“表達式3”的值作為條件表達式的值。例如:max=a>b?a:b;等價于:if(a>b)max=a;elsemax=b;
又如:if(a>b)printf(“max=%d\n”,a);elseprintf(“max=%d\n”,b);可寫成:
printf(“max=%d\n”,a>b?a:b);條件運算符的優(yōu)先級高于賦值運算符,但是低于關系運算符和算術運算符。結合性:自右至左。例如:
a<b?a:c>d?c:d等價于a<b?a:(c>d?c:d)不是(a<b?a:c)>d?c:da-b+c七、switch語句語法:
switch(表達式)
{case常量表達式1:語句序列1[break;]case常量表達式2:語句序列2[break;] …… case常量表達式m:語句序列m[break;][default:語句序列m+1]}case‘A’+3:例:輸入年,月,輸出該月有幾天,程序如下:intYear,Month,Days;printf("請輸入年,月:");scanf("%d%d",&Year,&Month);switch(Month){ case1: case3: case5: case7: case8: case10: case12:Days=31;break; case4: case6: case9: case11:Days=30;break; case2:if((Year%400==0)||(Year%4==0)&&(Year%100!=0))Days=29; else Days=28;}printf("Days=%d\n",Days);編程實現(xiàn)兩個實數(shù)的四則運算。例如:輸入26.3+89.5,則輸出26.300000+89.50000=115.800000#include<stdio.h>voidmain(){doublex,y;charop;scanf(“%lf%c%lf”,&x,&op,&y); switch(op)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024有債務離婚協(xié)議書
- 2024攝影工作室影視制作項目拍攝執(zhí)行合同范本3篇
- 中國地質(zhì)大學(武漢)《管理型財會仿真實訓》2023-2024學年第一學期期末試卷
- 浙江萬里學院《金屬塑性成形工藝與模具設計》2023-2024學年第一學期期末試卷
- 長江師范學院《定量分析化學實驗》2023-2024學年第一學期期末試卷
- 2025年度新材料研發(fā)及產(chǎn)業(yè)化合作協(xié)議3篇
- 銀行工作總結人才培養(yǎng)鑄就輝煌
- 2025年度精密儀器設備安裝與承包裝卸協(xié)議3篇
- 教育培訓行業(yè)話務員工作內(nèi)容
- 互聯(lián)網(wǎng)行業(yè)前臺工作總結
- 防止騷擾聲明
- 2024年蘇州市職業(yè)大學單招職業(yè)適應性測試題庫附答案
- 2023年人教版七年級上冊《生物》期末考試卷(完整版)
- 《火力發(fā)電廠貯灰場防滲技術導則》
- DB32 4418-2022《 居住建筑標準化外窗系統(tǒng)應用技術規(guī)程》
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 企業(yè)年度招聘計劃實施方案及費用預算表Word
- 【真題】2023年徐州市中考道德與法治試卷(含答案解析)
- 三年級上冊數(shù)學脫式計算練習300題附答案
- 2024年公務員考試新疆維吾爾新疆生產(chǎn)建設兵團圖木舒克市《行政職業(yè)能力測驗》全真模擬試卷含解析
- 死因監(jiān)測工作總結
評論
0/150
提交評論