《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

提交评论