版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.1選擇控制語(yǔ)句4.2循環(huán)控制語(yǔ)句4.3跳轉(zhuǎn)語(yǔ)句第4章C#控制語(yǔ)句2015年2月4.1選擇控制語(yǔ)句4.1.1if語(yǔ)句4.1.2if…else語(yǔ)句4.1.3if…elseif語(yǔ)句4.1.4switch語(yǔ)句2015年2月
if語(yǔ)句用于在程序中有條件地執(zhí)行某一語(yǔ)句序列,基本語(yǔ)法格式如下:
if(條件表達(dá)式)語(yǔ)句;其中,“條件表達(dá)式”是一個(gè)關(guān)系表達(dá)式或邏輯表達(dá)式,當(dāng)“條件表達(dá)式”為true時(shí),執(zhí)行后面的“語(yǔ)句”。4.1.1if語(yǔ)句2015年2月語(yǔ)法形式如下:
if(條件表達(dá)式)
語(yǔ)句1;
else
語(yǔ)句2;說(shuō)明:“條件表達(dá)式”是一個(gè)關(guān)系表達(dá)式或邏輯表達(dá)式。當(dāng)“條件表達(dá)式”為true時(shí)執(zhí)行“語(yǔ)句1”;當(dāng)“條件表達(dá)式”為false時(shí)執(zhí)行“語(yǔ)句2”。應(yīng)用舉例1:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,聲明一個(gè)int類型變量i,將其初始化為927。然后通過(guò)if…else判斷i是否大于927,若大于輸出“i大于927”,否則輸出“i不大于927”。應(yīng)用舉例2:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,屏幕顯示“請(qǐng)輸入一個(gè)年份:”,然后判斷該年份是否為閏年。4.1.2if…else語(yǔ)句2015年2月應(yīng)用舉例1usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest01{classProgram{staticvoidMain(string[]args){inti=927; //聲明一個(gè)int類型變量iif(i>927) //調(diào)用if語(yǔ)句判斷I是否大于927{Console.WriteLine("i大于927"); //如果大于927則輸出“I大于927”}else //否則
{Console.WriteLine("i不大于927"); //輸出“I不大于927”}Console.ReadLine();}}}2015年2月應(yīng)用舉例2usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest23{classProgram{staticvoidMain(string[]args){Console.Write(“請(qǐng)輸入一個(gè)年份:”);//屏幕輸入提示字符串stringstr=Console.ReadLine();//獲取用戶輸入的年份intyear=Int32.Parse(str);//將輸入的年份轉(zhuǎn)換為int類型//計(jì)算輸入的年份是否為閏年boolisleapyear=((year%400)==0)||(((year%4)==0)&&((year%100)!=0));stringyesno=isleapyear?“是”:“不是”;//條件判斷是否閏年Console.WriteLine("{0}年{1}閏年",year,yesno);Console.ReadLine();}}}2015年2月if…elseif語(yǔ)句用于進(jìn)行多重判斷,其語(yǔ)法形式如下:
if(條件表達(dá)式1)語(yǔ)句1;elseif(條件表達(dá)式2)語(yǔ)句2;…elseif(條件表達(dá)式n)語(yǔ)句n;else語(yǔ)句n+1;falsefalsefalsetruetruetrue條件表達(dá)式1語(yǔ)句1條件表達(dá)式2條件表達(dá)式n語(yǔ)句2語(yǔ)句n+1語(yǔ)句nfalse┇4.1.3if…elseif語(yǔ)句應(yīng)用舉例2015年2月編寫一個(gè)程序,將用戶輸入的分?jǐn)?shù)轉(zhuǎn)換成等級(jí)。usingSystem;namespaceProj4_4{classProgram{staticvoidMain(string[]args){ floatx; Console.Write("分?jǐn)?shù):"); x=float.Parse(Console.ReadLine()); if(x>=90)Console.WriteLine("等級(jí)為A"); elseif(x>=80)Console.WriteLine("等級(jí)為B"); elseif(x>=70)Console.WriteLine("等級(jí)為C"); elseif(x>=60)Console.WriteLine("等級(jí)為D"); elseConsole.WriteLine("等級(jí)為E");}}}if…elseif語(yǔ)句應(yīng)用舉例2015年2月switch語(yǔ)句是多分支選擇語(yǔ)句,也稱為開(kāi)關(guān)語(yǔ)句。它根據(jù)表達(dá)式的值使程序從多個(gè)分支中選擇一個(gè)用于執(zhí)行的分支,用于進(jìn)行多重判斷。switch語(yǔ)句的語(yǔ)法形式為:switch(表達(dá)式){ case常量表達(dá)式1:語(yǔ)句1;break; case常量表達(dá)式2:語(yǔ)句2;break; … case常量表達(dá)式n:語(yǔ)句n;break; default:語(yǔ)句n+1;break;}
說(shuō)明:表達(dá)式為判斷條件;case列出判斷分支;哪個(gè)分支的常量表達(dá)式符合表達(dá)式的條件,就執(zhí)行其后面的語(yǔ)句塊,并跳出switch;若所有case分支都不符合條件,則執(zhí)行default:后面的語(yǔ)句塊。見(jiàn)圖應(yīng)用舉例:編寫一個(gè)程序,要求輸入課程后顯示相應(yīng)的學(xué)分:數(shù)學(xué)(代號(hào)為m,8學(xué)分)、物理(代號(hào)為p,5學(xué)分)、化學(xué)(代號(hào)為c,5學(xué)分)、語(yǔ)文(代號(hào)為w,8學(xué)分)、英語(yǔ)(代號(hào)為e,6學(xué)分)。(見(jiàn)代碼)4.1.4switch語(yǔ)句2015年2月falsefalsefalsefalsetruetrue┇語(yǔ)句2語(yǔ)句n+1語(yǔ)句n表達(dá)式=常量表達(dá)式n表達(dá)式=常量表達(dá)式2語(yǔ)句1表達(dá)式=常量表達(dá)式1┇trueswitch語(yǔ)句執(zhí)行流程2015年2月usingSystem;namespaceProj4_5{classProgram{staticvoidMain(string[]args){ charch; Console.Write("課程代號(hào):"); ch=(char)Console.Read(); switch(ch) {case'm':case'M':case'w':case'W': Console.WriteLine("8學(xué)分"); break;case'p':case'P':case'c':case'C': Console.WriteLine("5學(xué)分"); break;case'e':case'E': Console.WriteLine("6學(xué)分"); break;default: Console.WriteLine("輸入的課程代號(hào)不正確"); break; }}}}switch語(yǔ)句應(yīng)用舉例2015年2月4.2循環(huán)控制語(yǔ)句4.2.1while語(yǔ)句4.2.2do-while語(yǔ)句4.2.3for語(yǔ)句4.2.4foreach語(yǔ)句循環(huán)控制語(yǔ)句提供重復(fù)處理的能力,當(dāng)某一特定條件成立時(shí),循環(huán)主語(yǔ)句就重復(fù)執(zhí)行循環(huán)體中的代碼。每循環(huán)一次就會(huì)測(cè)試一下循環(huán)條件,如果條件不成立,則結(jié)束循環(huán)。C#支持如下3種格式的循環(huán)語(yǔ)句。2015年2月
while語(yǔ)句的一般語(yǔ)法格式如下:
while(條件表達(dá)式){
語(yǔ)句;}
語(yǔ)句執(zhí)行流程如右圖所示。應(yīng)用舉例:編寫一個(gè)程序,將用戶輸入的多位整數(shù)反向顯示出來(lái)。(見(jiàn)代碼)falsetrue條件表達(dá)式語(yǔ)句while4.2.1while語(yǔ)句2015年2月usingSystem;namespaceProj4_7{classProgram{staticvoidMain(string[]args){intdigit,num; Console.Write("輸入一個(gè)整數(shù):"); num=int.Parse(Console.ReadLine()); Console.Write("反向顯示結(jié)果:"); while(num!=0) {digit=num%10;//依次求個(gè)位、十位…上的數(shù)字digitnum=num/10;//改變循環(huán)條件Console.Write(digit); } Console.WriteLine();}}}while語(yǔ)句應(yīng)用舉例2015年2月
do-while語(yǔ)句的一般語(yǔ)法格式如下:
do{
語(yǔ)句;
}while(條件表達(dá)式);
語(yǔ)句執(zhí)行流程如右圖所示。應(yīng)用舉例:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序聲明一個(gè)int類型的數(shù)組,并初始化數(shù)組,然后通過(guò)do-while語(yǔ)句循環(huán)輸出數(shù)組中的所有成員。(見(jiàn)代碼)4.2.2do-while語(yǔ)句
falsetrue條件
表達(dá)式
語(yǔ)句
do-while
2015年2月usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest05{classProgram{staticvoidMain(string[]args){//聲明一個(gè)int類型的數(shù)組,并初始化
int[]myNum=newint[6]{927,112,111,524,521,2008};ints=0; //聲明一個(gè)int類型的變量s并初始化為0do
{//輸出數(shù)組中的值
Console.WriteLine("myNum[{0}]的值為{1}",s,myNum[s]);s++; //s自增1}while(s<6);Console.ReadLine();}}}do-while語(yǔ)句應(yīng)用舉例2015年2月
for語(yǔ)句通常用于預(yù)先知道循環(huán)次數(shù)的情況,其一般語(yǔ)法格式如下:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
語(yǔ)句;}
說(shuō)明:表達(dá)式1用于初始化循環(huán)控制變量;表達(dá)式2用于確定循環(huán)條件;表達(dá)式3用于改變循環(huán)控制變量;語(yǔ)句;在表達(dá)式2成立時(shí)執(zhí)行。執(zhí)行流程如右圖所示。應(yīng)用舉例:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,輸出乘法表。(見(jiàn)代碼)truefalse表達(dá)式2語(yǔ)句表達(dá)式1表達(dá)式3for4.2.3for語(yǔ)句2015年2月usingSystem;namespaceProj4_8{classProgram{staticvoidMain(string[]args){ inti,j; for(i=1;i<=9;i++) {for(j=1;j<=i;j++)Console.Write("{0}×{1}={2}",i,j,i*j);Console.WriteLine(); }}}}for語(yǔ)句應(yīng)用舉例2015年2月4.2.4foreach語(yǔ)句Foreach語(yǔ)句用于枚舉一個(gè)集合的元素,并對(duì)集合中的每個(gè)元素執(zhí)行一次嵌入語(yǔ)句。但該語(yǔ)句不能用于更改集合內(nèi)容,以避免產(chǎn)生不可預(yù)測(cè)的錯(cuò)誤。Foreach語(yǔ)句的基本形式如下:
foreach([類型][循環(huán)變量名]in[集合類型表達(dá)式]){語(yǔ)句;}說(shuō)明:([類型]、[循環(huán)變量名]用于聲明循環(huán)變量,在foreach執(zhí)行期間,循環(huán)變量表示當(dāng)前正在為其執(zhí)行循環(huán)的集合元素;必須有一個(gè)從該集合的元素類型到循環(huán)變量的類型的顯示轉(zhuǎn)換,若其值為null,則會(huì)出現(xiàn)異常。應(yīng)用舉例:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,實(shí)例化一個(gè)ArrayList數(shù)組,向數(shù)組中添加值,然后使用foreach語(yǔ)句遍歷整個(gè)數(shù)組,并輸出數(shù)組中的值。(見(jiàn)代碼)2015年2月Foreach語(yǔ)句應(yīng)用舉例usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Collections;namespaceTest09{classProgram{staticvoidMain(string[]args){ArrayListalt=newArrayList(); //實(shí)例化ArrayList類
alt.Add("用一生下載你"); //使用Add方法向?qū)ο笾刑砑訑?shù)據(jù)
alt.Add("蕓燁湘楓"); //使用Add方法向?qū)ο笾刑砑訑?shù)據(jù)
alt.Add("一生所愛(ài)"); //使用Add方法向?qū)ο笾刑砑訑?shù)據(jù)
alt.Add("情繭"); //使用Add方法向?qū)ο笾刑砑訑?shù)據(jù)
alt.Add("痞子CAI"); //使用Add方法向?qū)ο笾刑砑訑?shù)據(jù)
Console.WriteLine("您收藏的網(wǎng)名有:"); //輸出提示
foreach(stringInternetNameinalt) //使用foreach語(yǔ)句輸出數(shù)據(jù)
{Console.WriteLine(InternetName); //輸出ArrayList對(duì)象中的所有數(shù)據(jù)
}Console.ReadLine();}}}2015年2月4.3跳轉(zhuǎn)語(yǔ)句4.3.1break語(yǔ)句4.3.2continue語(yǔ)句4.3.3goto語(yǔ)句4.3.4return語(yǔ)句跳轉(zhuǎn)主要用于無(wú)條件地轉(zhuǎn)移控制,跳轉(zhuǎn)語(yǔ)句會(huì)將控制轉(zhuǎn)到某個(gè)位置,即跳轉(zhuǎn)語(yǔ)句的目標(biāo)。如果跳轉(zhuǎn)語(yǔ)句出現(xiàn)在一個(gè)語(yǔ)句塊內(nèi),跳轉(zhuǎn)目標(biāo)在語(yǔ)句塊之外,即稱退出該語(yǔ)句塊;否則為跳出循環(huán)。2015年2月
break語(yǔ)句只能應(yīng)用在switch、do、while、for或foreach語(yǔ)句中,否則會(huì)出現(xiàn)編譯錯(cuò)誤。當(dāng)多條switch、do、while、for或foreach語(yǔ)句互相嵌套時(shí),break語(yǔ)句只應(yīng)用于最里層的語(yǔ)句。
break語(yǔ)句在switch語(yǔ)句中的應(yīng)用
創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,聲明一個(gè)int類型的變量i用于獲取當(dāng)前日期的返回值,然后使用switch語(yǔ)句根據(jù)變量i輸出當(dāng)前日期是星期幾。(見(jiàn)代碼)
break語(yǔ)句在for語(yǔ)句中的應(yīng)用編寫一個(gè)程序,判斷從鍵盤輸入的大于3的正整數(shù)是否為素?cái)?shù)。(說(shuō)明:當(dāng)變量n能被3~的任何整數(shù)整除時(shí),表示n不是素?cái)?shù))(見(jiàn)代碼)4.3.1break語(yǔ)句2015年2月break語(yǔ)句在switch語(yǔ)句中的應(yīng)用usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest10{classProgram{staticvoidMain(string[]args){inti=Convert.ToInt32(DateTime.Today.DayOfWeek); //獲取當(dāng)前日期的數(shù)值
switch(i) //調(diào)用switch語(yǔ)句
{case1:Console.WriteLine("今天是星期一");break;//如果i是1,則輸出今天是星期一
case2:Console.WriteLine("今天是星期二");break;//如果i是2,則輸出今天是星期二
case3:Console.WriteLine("今天是星期三");break;//如果i是3,則輸出今天是星期三
case4:Console.WriteLine("今天是星期四");break;//如果i是4,則輸出今天是星期四
case5:Console.WriteLine("今天是星期五");break;//如果i是5,則輸出今天是星期五
case6:Console.WriteLine("今天是星期六");break;//如果i是6,則輸出今天是星期六
case7:Console.WriteLine("今天是星期日");break;//如果i是7,則輸出今天是星期日
}Console.ReadLine();}}}2015年2月usingSystem;namespaceProj4_9{classProgram{staticvoidMain(string[]args){intn,i; boolprime=true; Console.Write("輸入一個(gè)大于3的正整數(shù):"); n=int.Parse(Console.ReadLine()); for(i=3;i<=Math.Sqrt(n);i++)if(n%i==0){prime=false;break;} if(prime)Console.WriteLine("{0}是素?cái)?shù)",n); elseConsole.WriteLine("{0}不是素?cái)?shù)",n);}}}break語(yǔ)句在for語(yǔ)句中的應(yīng)用2015年2月
continue語(yǔ)句只能用于循環(huán)語(yǔ)句中,它類似于break,但它不是結(jié)束循環(huán),而是結(jié)束循環(huán)語(yǔ)句的當(dāng)前一次循環(huán),接著執(zhí)行下一次循環(huán)。當(dāng)多個(gè)循環(huán)語(yǔ)句互相嵌套時(shí),continue語(yǔ)句只能使直接包含它的循環(huán)語(yǔ)句開(kāi)始一次新的循環(huán)。應(yīng)用舉例:
編寫一個(gè)程序,對(duì)用戶輸入的所有正數(shù)求和,如果輸入的是負(fù)數(shù),則忽略該數(shù)。程序每讀入一個(gè)數(shù),判斷它的正負(fù),如果為負(fù),則利用continue語(yǔ)句結(jié)束當(dāng)前一次循環(huán),繼續(xù)下一次循環(huán),否則將該數(shù)加到總數(shù)上去。(見(jiàn)代碼)4.3.2continue語(yǔ)句2015年2月usingSystem;namespaceProj4_10{classProgram{staticvoidMain(string[]args){ intsum=0,n=1; while(n!=0) //循環(huán) {Console.Write("輸入一個(gè)整數(shù)(以0表示結(jié)束):");n=int.Parse(Console.ReadLine());if(n<0)continue; //開(kāi)始下一次循環(huán)sum+=n; } Console.WriteLine("所有正數(shù)之和={0}",sum);}}}continue語(yǔ)句應(yīng)用舉例2015年2月
goto語(yǔ)句也可以跳出循環(huán)和switch語(yǔ)句。goto語(yǔ)句用于無(wú)條件轉(zhuǎn)移程序的執(zhí)行控制,將控制轉(zhuǎn)移到由標(biāo)簽標(biāo)記的語(yǔ)句。其3種形式如下:
goto
標(biāo)簽;
gotocase參數(shù)表達(dá)式;
gotodefault
說(shuō)明:第一種格式的目標(biāo)是具有給定標(biāo)簽的標(biāo)記語(yǔ)句,其中,標(biāo)簽是用戶自定義的標(biāo)識(shí)符,它可以處于goto語(yǔ)句的前面,也可以處于其后面,但是標(biāo)簽必須與goto語(yǔ)句處于同一個(gè)函數(shù)中。定義標(biāo)號(hào)時(shí),由一個(gè)標(biāo)識(shí)符后面跟一冒號(hào)組成;第二種格式的目標(biāo)是它所在的switch語(yǔ)句中的某個(gè)語(yǔ)句列表,此列表包含一個(gè)具有給定常數(shù)值的case標(biāo)簽;第三種格式的目標(biāo)是它所在的switch語(yǔ)句中default標(biāo)簽。注意:雖然goto語(yǔ)句有一定的使用價(jià)值,但目前存在爭(zhēng)議。有人建議不使用,有人建議作為排除錯(cuò)誤的基本工具,所以要小心使用。應(yīng)用舉例:創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,使用goto語(yǔ)句實(shí)現(xiàn)程序跳轉(zhuǎn)到指定的語(yǔ)句。(見(jiàn)代碼)4.3.3goto語(yǔ)句2015年2月goto語(yǔ)句應(yīng)用舉例(1)singSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest13{classProgram{staticvoidMain(string[]args){Console.WriteLine("請(qǐng)輸入要查找的文字:"); //輸出提示信息
stringinputstr=Console.ReadLine(); //獲取輸入值
string[]mystr=newstring[5]; //創(chuàng)建一個(gè)字符串?dāng)?shù)組
mystr[0]="用一生下載你"; //向數(shù)組中添加第一個(gè)元素
mystr[1]="蕓燁湘楓"; //向數(shù)組中添加第二個(gè)元素
mystr[2]="一生所愛(ài)"; //向數(shù)組中添加第三個(gè)元素
mystr[3]="情繭"; //向數(shù)組中添加第四個(gè)元素
mystr[4]="風(fēng)華絕代"; //向數(shù)組中添加第五個(gè)元素
2015年2月goto語(yǔ)句應(yīng)用舉例(2)
for(inti=0;i<mystr.Length;i++) //調(diào)用for循環(huán)語(yǔ)句
{if(mystr[i].Equals(inputstr))//通過(guò)if語(yǔ)句判斷是否存在輸入的字符串{
gotoFound; //調(diào)用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版光伏發(fā)電站鋪裝工程合同
- 2024虛擬現(xiàn)實(shí)產(chǎn)品代理合同
- 二零二五年度綠色建筑施工合同跟蹤及環(huán)境保護(hù)協(xié)議3篇
- 2024版建筑工程合同管理的主要工作
- 完整的保險(xiǎn)合同簽訂例子
- epc工程合同范本
- 物資合同崗位職責(zé)
- 文旅開(kāi)發(fā)合同協(xié)議書(shū)
- 2025年度物業(yè)費(fèi)及社區(qū)文化活動(dòng)策劃合同
- 2025年度私人飛機(jī)駕駛員勞務(wù)合同
- 綠色簡(jiǎn)潔商務(wù)匯總報(bào)告PPT模板課件
- 下肢皮牽引護(hù)理PPT課件(19頁(yè)P(yáng)PT)
- 臺(tái)資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書(shū)
- 參會(huì)嘉賓簽到表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評(píng)估流程圖
- 人力資源管理之績(jī)效考核 一、什么是績(jī)效 所謂績(jī)效簡(jiǎn)單的講就是對(duì)
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評(píng)論
0/150
提交評(píng)論