《C#語言程序設計項目教程》第4章 循環流程控制語句寫字字帖_第1頁
《C#語言程序設計項目教程》第4章 循環流程控制語句寫字字帖_第2頁
《C#語言程序設計項目教程》第4章 循環流程控制語句寫字字帖_第3頁
《C#語言程序設計項目教程》第4章 循環流程控制語句寫字字帖_第4頁
《C#語言程序設計項目教程》第4章 循環流程控制語句寫字字帖_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章循環流程控制語句本章導讀:本章的主要內容是學習循環流程控制語句。然后通過項目“猜數字游戲”為導向,兩個任務(構建游戲界面、游戲競猜)為驅動,學習有關C#語言的循環流程控制語句,包括while循環、do-while循環、for循環、foreach循環等,本項目的完成為后續項目完成奠定了基礎。第4章循環流程控制語句

——任務一構建游戲界面

一、任務描述:游戲界面的需要使用基本輸出命令進行構建。分析猜數字游戲的規則流程,得出需要定義的變量。在游戲中先隨機生成一個待猜數字,范圍是1~100,然后玩家輸入所猜數字,如果正確則提示“恭喜您!猜對了!”,如果猜錯了,則提示新的數字范圍,逐漸縮小數字范圍,最后幫助玩家猜到數字。游戲運行過程如左圖所示。本游戲適合多個玩家一起玩,不幸猜中的玩家給予處罰。二、任務分析:F(1)分析猜數字游戲的規則流程得知需要以下五個變量序號變量名稱變量作用1guess保存待猜數字2min,max保存提示當前數范圍3input玩家輸入的猜測數字4tmp由于控制臺輸入的是字符串,需要臨時字符串變量來接受玩家輸入的內容。5r本任務需要產生的隨機待猜數字,范圍是1~100。C#提供了一個強大的隨機類Random,使用該類定義隨機對象r。三、任務實施:1、啟動VisualStudio2010,建立名為“Guess”的窗體應用程序。2、打開Fom1.cs代碼文件,對各變量進行定義并賦初值:intguess;//待猜數

intmin;//范圍最小值

intmax;//范圍最大值

intinput;//保存玩家輸入值

Randomr=newRandom();//隨機對象,用于產生隨機數

//變量初始化

guess=r.Next(1,100);//產生1-100之間的隨機整數

min=1;//初始范圍最小值為1

max=100;//初始范圍最大值為100三、任務實施:3、游戲提示信息:Console.WriteLine("待猜數已經生成,范圍是:1至100\n");1、產生1個隨機數的方法如下:Randomr=newRandom();//隨機對象,用于產生隨機數r.Next(1,100);//產生1-100之間的隨機整數四、任務小結:第4章循環流程控制語句

——任務二游戲競猜

一、任務描述:游戲競猜過程如下,運行效果如右圖所示:

(1)先隨機生成一個待猜數字,范圍是1~100(2)然后玩家輸入所猜數字,如果正確則提示“恭喜您!猜對了!”,如果猜錯了,則提示新的數字范圍(3)逐漸縮小數字范圍,最后幫助玩家猜到數字。二、任務準備:1while語句2do…while語句3for語句4while語句5跳轉語句1、while語句while語句又叫直到型循環語句,通常用于循環次數不確定,但循環條件非常明確的循環控制語句中,while語句的基本結構如下:二、任務準備:while(條件表達式){

循環體語句;}二、任務準備:2、do…while語句do-while語句與while語句類似,不同的是do-while在進行條件表達式判定之前,先執行一次循環體語句。do{

循環體語句;}while(條件表達式);二、任務準備:3、for語句for語句通常用于循環次數比較確定的循環流程控制語句,它的基本格式如下:for(初始化表達式;條件表達式;循環表達式){

循環語句塊//執行語句}二、任務準備:4、foreach語句foreach循環語句用于對數組和集合類型中的每個元素進行只讀訪問。foreach語句為數組或對象集合中的各個元素的只讀提供了一種機制。foreach語句用于循環訪問集合以獲取信息,但不用更改集合內容。foreach(迭代類型

迭代變量名

in集合){ //foreach循環體}二、任務準備:例:使用foreach循環依次序輸出字符串“我是C#程序員”的每一個字。stringstr="我是C#程序員";foreach(charcinstr){Console.WriteLine(c);}Console.ReadLine();二、任務準備:break語句只能在switch分支語句和循環語句中使用,通常配合if語句一起使用,當條件滿足(或不滿足)時,強制退出循環。如果循環體中使用switch語句,而break出現在switch語句中,則它只用于結束switch,而不影響循環。break語句只能結束包含它的最內層循環,而不能跳了多重循環。(1)break語句break語句形式:break;、5、跳轉語句continue語句功能:它只能出現在循環體中,其功能是立即結束本次循環,即遇到continue語句時,不執行循環體中continue后的語句,立即轉去判斷循環條件是否成立,即中止當次循環進入下一次循環。二、任務準備:5、跳轉語句(2)continue語句continue語句形式:continue;continue與break語句的區別:continue只是結束本次循環,而不是終止整個循環語句的執行,break則是終止當前整個循環語句的執行,轉到當前循環語句后的下一條語句去執行。特別注意二、任務準備:注意:goto語句往往用來從多重循環中跳出。它在解決一些特定問題時很方便,但由于goto語句難于控制,盡量少用。goto語句在任務2.3簡易計算器中已經使用過,這里不再舉例說明。5、跳轉語句(3)goto語句goto語句標號;三、任務分析:游戲的競猜可能要經過多次才能結束。對于循環結構的程序設計,一般首先考慮1次循環如何進行,在本項目中就應該考慮1次競猜如何完成,然后再對競猜部分代碼加上循環語句使得程序循環。四、任務實施:1.打開任務4.1中未完成的“Guess”控制臺應用程序。2.輸入玩家所猜數字,并判斷是否正確:

do{Console.WriteLine("你猜?");input=Convert.ToInt32(Console.ReadLine());if(input==guess){Console.WriteLine("恭喜你,猜對了!\n");Console.ReadLine();break;四、任務實施:}elseif(input<guess){min=input;Console.WriteLine("繼續:"+min+"~"+max);}else{max=input;Console.WriteLine("繼續:"+min+"~"+max);}}while(true);四、任務實施:3.當玩家所猜數字不正確時,給出縮小數字范圍,讓玩家繼續猜數字,修改程序段為:

Console.WriteLine("你猜?");input=Convert.ToInt32(Console.ReadLine());if(input==guess){Console.WriteLine("恭喜你,猜對了!\n");Console.ReadLine();break;}elseif(input<guess){min=input;//修正數字的最小值

Console.WriteLine("繼續:"+min+"~"+max);}else{max=input;//修正數字的最大值

Console.WriteLine("繼續:"+min+"~"+max);}四、任務實施:五、任務小結:(1)一個程序的靈魂在于算法的體現,在進行復雜流程程序編程時,最好的方式是事先畫出流程圖,流程圖的畫法可以參考相關書籍。(2)while(true)表示循環條件為真,只有當遇到break語句時,才會退出循環。五、任務小結:(3)3個循環語句之間通常可以相互替換,在實際編程時,要根據需要選擇適合的循環語句。利用while語句修改程序段:

while(true){Console.WriteLine("你猜?");

input=Convert.ToInt32(Console.ReadLine());

if(input==guess)

{

Console.WriteLine("恭喜你,猜對了!\n");

Console.ReadLine();

break;}elseif(input<guess){min=input;//修正數字的最小值Console.WriteLine("繼續:"+min+"~"+max);}else

溫馨提示

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

評論

0/150

提交評論