C程序設(shè)計(jì)初步C控制語句_第1頁
C程序設(shè)計(jì)初步C控制語句_第2頁
C程序設(shè)計(jì)初步C控制語句_第3頁
C程序設(shè)計(jì)初步C控制語句_第4頁
C程序設(shè)計(jì)初步C控制語句_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章C++控制語句2.1C++語句概述2.2選擇結(jié)構(gòu)2.3循環(huán)結(jié)構(gòu)2.1C++語句概述1.控制語句控制語句主要完成分支結(jié)構(gòu)程序和循環(huán)結(jié)構(gòu)程序的控制。

C++主要包括以下9個(gè)控制語句:if~else~語句分支語句switch語句多分支語句for語句循環(huán)語句while語句循環(huán)語句do~while語句循環(huán)語句continue語句結(jié)束本次循環(huán)語句break語句結(jié)束循環(huán)或結(jié)束switch語句goto語句轉(zhuǎn)向語句return語句從函數(shù)返回語句第2章C++控制語句2.1C++語句概述2.函數(shù)調(diào)用語句

C++有大量的系統(tǒng)函數(shù),程序員也可以自己定義函數(shù),對(duì)這些函數(shù)的調(diào)用可以作為一條語句。3.表達(dá)式語句由一個(gè)表達(dá)式構(gòu)成一個(gè)語句,即在表達(dá)式后添加一個(gè)分號(hào),如賦值表達(dá)式語句等。4.空語句空語句只有一個(gè)分號(hào)。即:;因此空語句什么也不做。除了上面的簡(jiǎn)單語句外,可以將一組簡(jiǎn)單語句用大括號(hào){}括起來,稱之為復(fù)合語句。

第2章C++控制語句

返回2.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)也稱分支結(jié)構(gòu),就是在程序運(yùn)行過程中,根據(jù)具體條件執(zhí)行不同的程序段。2.2.1if語句1.if語句的根本結(jié)構(gòu):if(表達(dá)式){語句組1;}else{語句組2;}表達(dá)式語句組1語句組2真假if-else語句流程圖注意:表達(dá)式必須用“()〞括起來假設(shè)語句組中只有一條簡(jiǎn)單的語句,那么大括號(hào)“{}〞可以省略。第2章C++控制語句例2.1求兩個(gè)數(shù)中較大的值和較小的值#include<iostream.h>voidmain(){ inta,b,max,min; a=10; b=20; if(a>b) { max=a; min=b; } else { max=b; min=a; } cout<<"max="<<max<<endl; cout<<"min="<<min<<endl;}第2章C++控制語句程序運(yùn)行結(jié)果為:max=20min=10例2.2輸入一個(gè)成績(jī),判斷是否需要補(bǔ)考,如果需要打印出來#include<iostream.h>voidmain(){ intscore; cout<<"請(qǐng)輸入成績(jī):"; cin>>score; if(score<60) cout<<"不及格,需要補(bǔ)考!"<<endl;}第2章C++控制語句程序運(yùn)行時(shí),假設(shè)輸入的成績(jī)大于或等于60,那么沒有任何輸出。僅需要一個(gè)分支,因?yàn)椴恍枰a(bǔ)考時(shí)不用進(jìn)行處理,因此可以省略else語句局部2.2選擇結(jié)構(gòu)2.2.1if語句〔續(xù)一〕2.if語句的嵌套:在if語句的“語句組1〞或“語句組2〞中又包含有if語句的情況。if()if()語句1else語句2elseif()語句3else語句4if語句嵌套時(shí),else子句總是與在它前面、距它最近、且尚未匹配的if配對(duì)。為明確匹配關(guān)系,防止匹配錯(cuò)誤,建議將內(nèi)嵌的if語句一律用“{}〞括起來。

第2章C++控制語句例2.3輸入三個(gè)數(shù)a、b、c,輸出其中最大的數(shù)#include<iostream.h>voidmain(){ inta,b,c,max; cout<<"請(qǐng)輸入3個(gè)整數(shù),以空格分隔:"; cin>>a>>b>>c; if(a>b) { if(a>c) max=a; else max=c; } else { if(b>c) max=b; else max=c; } cout<<"max="<<max<<endl;}

第2章C++控制語句程序運(yùn)行結(jié)果為:請(qǐng)輸入3個(gè)整數(shù),以空格分隔:456432max=642.2選擇結(jié)構(gòu)2.2.1if語句〔續(xù)二〕3.用if語句實(shí)現(xiàn)多分支:if(表達(dá)式1){語句組1;}elseif(表達(dá)式2){語句組2;}…elseif(表達(dá)式n){語句組n;}else{語句組n+1;}第2章C++控制語句表達(dá)式1語句組1語句組2真假表達(dá)式2真假語句組3表達(dá)式3真假語句組4if-else實(shí)現(xiàn)多分支流程圖例2.4從鍵盤上輸入一個(gè)成績(jī),如果大于等于90,輸出“優(yōu)〞,如果大于等于80,小于90,輸出“良〞,如果大于等于70,小于80,輸出“中〞,如果大于等于60,小于70,輸出“及格〞,如果小于60,輸出“不及格〞。#include<iostream.h>voidmain(){ ints; cout<<"請(qǐng)輸入成績(jī)"; cin>>s; if(s>=90) { cout<<"優(yōu)"<<endl; } elseif((s>=80)&&(s<90)) { cout<<"良"<<endl; }

第2章C++控制語句elseif((s>=70)&&(s<80)) { cout<<"中"<<endl; } elseif((s>=60)&&(s<70)) { cout<<"及格"<<endl; } elseif(s<60) { cout<<"不及格"<<endl; }}

2.2選擇結(jié)構(gòu)2.2.2switch語句

1.switch語句的一般結(jié)構(gòu):

switch(表達(dá)式){

case常量1:語句組1;break;

case常量2:語句組2;break; …… case常量n:語句組n;break; default:語句組n+1;break;}

第2章C++控制語句注意:表達(dá)式只能是整型、字符型或枚舉型注意:常量1~n的值必須各不相同若沒有break語句,將會(huì)從滿足條件的語句組開始一直執(zhí)行下去。2.2選擇結(jié)構(gòu)2.2.2switch語句〔續(xù)〕switch語句流程圖:第2章C++控制語句其它常量n常量1常量2表達(dá)式語句組1語句組2語句組n語句組n+1例2.5用switch語句實(shí)現(xiàn)例2.4的功能#include<iostream.h>voidmain(){ ints,i; cout<<“請(qǐng)輸入成績(jī)"; cin>>s; i=s/10; switch(i) { case9: case10: cout<<“優(yōu)〞<<endl; break; case8: cout<<“良〞<<endl; break; case7: cout<<“中〞<<endl; break; case6: cout<<“及格〞<<endl; break; default: cout<<“不及格〞<<endl; break; }}第2章C++控制語句2.2選擇結(jié)構(gòu)2.2.3程序舉例

例2.6有一函數(shù):

-1x<0y=0x=01x>0編寫程序,輸入一個(gè)x的值,求出y的值并輸出。

第2章C++控制語句例2.6源程序#include<iostream.h>voidmain(){ intx,y; cout<<"請(qǐng)輸入x的值:"; cin>>x; if(x<0) y=-1; else { if(x==0) y=0; else y=1; } cout<<"y="<<y<<endl;}

第2章C++控制語句2.2選擇結(jié)構(gòu)2.2.3程序舉例〔續(xù)一〕

例2.7求一元二次方程ax2+bx+c=0的解。一元二次方程ax2+bx+c=0,根據(jù)3個(gè)系數(shù)的關(guān)系,有以下幾種情況:〔1〕a=0,不是二次方程?!?〕b2-4ac=0,有兩個(gè)相等的實(shí)根?!?〕b2-4ac>0,有兩個(gè)不相等的實(shí)根?!?〕b2-4ac<0,有兩個(gè)共軛復(fù)根。第2章C++控制語句例2.7源程序#include"iostream.h"#include"math.h"voidmain(){ doublea,b,c,disc,x1,x2,p,q; cin>>a>>b>>c; if(fabs(a)<1e-6) cout<<"不是一元二次方程"<<endl; else { disc=b*b-4*a*c; if(fabs(disc)<=1e-6)//有兩個(gè)相等的實(shí)根

cout<<"x1=x2="<<-b/(2*a)<<endl; else {

第2章C++控制語句fabs和sqrt是庫函數(shù),分別用于求絕對(duì)值和平方根。使用之前要包含math.h頭文件實(shí)數(shù)在計(jì)算機(jī)中存儲(chǔ)會(huì)有誤差,因此判斷實(shí)數(shù)是否=0時(shí),通常是通過判斷該數(shù)的絕對(duì)值是否小于一個(gè)很小的數(shù)(如10-6

),如果小于這個(gè)數(shù)就認(rèn)為它等于0。例2.7源程序〔續(xù)〕 if(disc>1e-6)//有兩個(gè)不相等的實(shí)根

{ x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; } else//有兩個(gè)共軛復(fù)根

{ p=-b/(2*a); q=sqrt(fabs(disc))/(2*a); cout<<"x1="<<p<<"+"<<q<<"i"<<endl; cout<<"x2="<<p<<"-"<<q<<"i"<<endl; } } }}第2章C++控制語句3.2選擇結(jié)構(gòu)2.2.3程序舉例〔續(xù)二〕

例2.8編一個(gè)程序計(jì)算指定年月有幾天,年月由鍵盤輸入。分析:每年的1,3,5,7,8,10,12月份有31天,4,6,9,11月份有30天,如果不是閏年,2月份有28天,閏年的2月有29天。判斷閏年的條件是:能被4整除但不能被100整除,或者能被400整除。第2章C++控制語句例2.8源程序#include<iostream.h>voidmain(){ intyear,month,days; cout<<"請(qǐng)輸入年和月,用空格分隔"; cin>>year>>month; switch(month) { case1:case3:case5:case7:case8:case10:case12: days=31; break;case4:case6:case9:case11: days=30; break;

第2章C++控制語句例2.8源程序〔續(xù)〕case2: if(((year%4==0)&&(year%100!=0))||(year%400==0)) days=29; else days=28; break;default: days=0; break; }if(days==0) cout<<"月份輸入有誤!"<<endl; else cout<<"該月份有"<<days<<"天。"<<endl;}第2章C++控制語句

返回2.3循環(huán)結(jié)構(gòu)當(dāng)同一段程序要執(zhí)行屢次時(shí),就要用到循環(huán)結(jié)構(gòu)。2.3.1while語句while語句的一般格式:while(循環(huán)條件){循環(huán)體語句組;}

循環(huán)條件循環(huán)體語句組真假while語句流程圖第2章C++控制語句例2.9求1~100的累計(jì)和#include<iostream.h>voidmain(){ inti=1; intsum=0; while(i<=100) { sum+=i; i++; }cout<<"sum="<<sum<<endl;}

第2章C++控制語句2.3循環(huán)結(jié)構(gòu)2.3.2do-while語句

do-while語句的一般格式:

do{循環(huán)體語句組;}while(循環(huán)條件);

第2章C++控制語句循環(huán)條件循環(huán)體語句組真假do-while語句流程圖例2.10用do-while語句求1~100的累計(jì)和#include<iostream.h>voidmain(){ inti=1; intsum=0; do { sum+=i; i++; }while(i<=100);cout<<"sum="<<sum<<endl;}

第2章C++控制語句2.3循環(huán)結(jié)構(gòu)2.3.3for語句for語句的一般格式:for〔表達(dá)式1;表達(dá)式2;表達(dá)式3〕{循環(huán)體語句組;}表達(dá)式1通常用于為循環(huán)變量賦初值;表達(dá)式2通常為循環(huán)條件;表達(dá)式3通常為循環(huán)變量增值或減值,以使循環(huán)趨于結(jié)束。三個(gè)表達(dá)式都可以省略,但分號(hào)不能省。如果表達(dá)式2省略,那么循環(huán)條件總為真。第2章C++控制語句假for語句流程圖表達(dá)式2表達(dá)式1真循環(huán)體語句組表達(dá)式3例2.11用for語句求1~100的累計(jì)和#include<iostream.h>voidmain(){ inti; intsum=0; for(i=1;i<=100;i++) { sum+=i; } cout<<"sum="<<sum<<endl;}

第2章C++控制語句2.3循環(huán)結(jié)構(gòu)2.3.4continue、break與goto語句1.continue語句:當(dāng)程序運(yùn)行到continue語句時(shí),循環(huán)體余下的語句不再執(zhí)行,立即試圖進(jìn)入下次循環(huán)。對(duì)于for循環(huán),遇到continue語句時(shí),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)語句中的表達(dá)式3的計(jì)算;對(duì)于while和do-while循環(huán),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)條件表達(dá)式的計(jì)算。2.break語句:當(dāng)程序運(yùn)行到break語句時(shí),立即結(jié)束循環(huán)。轉(zhuǎn)向循環(huán)語句下面的語句繼續(xù)執(zhí)行。3.goto語句:無條件轉(zhuǎn)向語句。goto語句易使程序流程混亂。一般形式:goto語句標(biāo)號(hào);語句標(biāo)號(hào)也要符合標(biāo)識(shí)符的命名規(guī)那么,語句標(biāo)號(hào)處要在標(biāo)號(hào)后面加“:〞,當(dāng)執(zhí)行g(shù)oto語句時(shí),會(huì)無條件轉(zhuǎn)向標(biāo)號(hào)所在語句執(zhí)行。第2章C++控制

溫馨提示

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

評(píng)論

0/150

提交評(píng)論