配色: 字号:
《C#语言程序设计项目教程》第4章 循环流程控制语句写字字帖
2023-05-24 | 阅:  转:  |  分享 
  
第4章 循环流程控制语句本章导读:本章的主要内容是学习循环流程控制语句。然后通过项目“猜数字游戏”为导向,两个任务(构建游戏界面、游戏竞猜
)为驱动,学习有关C#语言的循环流程控制语句,包括while循环、do-while循环、for循环、foreach循环等,本项目的
完成为后续项目完成奠定了基础。第4章 循环流程控制语句 ——任务一 构建游戏界面 一、任务描述:游戏界面的需要使用基本输出命
令进行构建。分析猜数字游戏的规则流程,得出需要定义的变量。 在游戏中先随机生成一个待猜数字,范围是1~100,然后玩
家输入所猜数字,如果正确则提示“恭喜您!猜对了!”,如果猜错了,则提示新的数字范围,逐渐缩小数字范围,最后帮助玩家猜到数字。游戏运
行过程如左图所示。本游戏适合多个玩家一起玩,不幸猜中的玩家给予处罚。二、任务分析:F(1)分析猜数字游戏的规则流程得知需要以下五个
变量三、任务实施:1、启动Visual Studio 2010,建立名为“Guess”的窗体应用程序。2、打开Fom1.cs代码文
件,对各变量进行定义并赋初值: int guess; // 待猜数 int min; // 范围最小值
int max; // 范围最大值 int input; // 保存玩家输入值
Random r = new Random(); // 随机对象,用于产生随机数 // 变量初始化 guess
= r.Next(1, 100); // 产生1-100之间的随机整数 min = 1;
// 初始范围最小值为1 max = 100; // 初始范围最大值为100 三、任务实
施:3、游戏提示信息: Console.WriteLine("待猜数已经生成,范围是:1至100\n");1、产生1个随机数
的方法如下: Random r = new Random(); // 随机对象,用于产生随机数r.Next(1, 100)
; // 产生1-100之间的随机整数四、任务小结:第4章 循环流程控制语句 ——任务二 游戏竞猜
一、任务描述:游戏竞猜过程如下,运行效果如右图所示: (1)先随机生成一个待猜数字,范围是1~100(2)然后玩家输入所猜数
字,如果正确则提示“恭喜您!猜对了!”,如果猜错了,则提示新的数字范围(3)逐渐缩小数字范围,最后帮助玩家猜到数字。二、任务准备:
1、while语句 while语句又叫直到型循环语句,通常用于循环次数不确定,但循环条件非常明确的循环控制语句中,while语句的
基本结构如下:二、任务准备:while(条件表达式){ 循环体语句;}二、任务准备:2、do…while语句do-while语
句与while语句类似,不同的是do-while在进行条件表达式判定之前,先执行一次循环体语句。do{ 循环体语句;}whil
e(条件表达式);二、任务准备:3、for语句for语句通常用于循环次数比较确定的循环流程控制语句,它的基本格式如下:for (初
始化表达式;条件表达式;循环表达式){ 循环语句块//执行语句}二、任务准备:4、 foreach语句foreach循环语句用于
对数组和集合类型中的每个元素进行只读访问。foreach语句为数组或对象集合中的各个元素的只读提供了一种机制。foreach语句用
于循环访问集合以获取信息,但不用更改集合内容。 foreach (迭代类型 迭代变量名 in 集合){ //forea
ch循环体}二、任务准备:例:使用foreach循环依次序输出字符串“我是C#程序员”的每一个字。string str = "我是
C#程序员"; foreach (char c in str) { Console.WriteLine(
c); } Console.ReadLine();二、任务准备:break语句只能在switch分支语句和循环语句中使
用,通常配合if语句一起使用,当条件满足(或不满足)时,强制退出循环。如果循环体中使用switch语句,而break出现在swit
ch语句中,则它只用于结束switch,而不影响循环。break语句只能结束包含它的最内层循环,而不能跳了多重循环。(1) bre
ak语句break语句形式: break;、5、跳转语句continue语句功能: 它只能出现在循环体中,其功能是立即结束本次
循环,即遇到continue语句时,不执行循环体中continue后的语句,立即转去判断循环条件是否成立,即中止当次循环进入下一次
循环。二、任务准备:5、跳转语句(2)continue语句continue语句形式: continue;continue与brea
k语句的区别: continue只是结束本次循环,而不是终止整个循环语句的执行,break则是终止当前整个循环语句的执行,转到当前
循环语句后的下一条语句去执行。特别注意二、任务准备:注意:goto语句往往用来从多重循环中跳出。它在解决一些特定问题时很方便,但由
于goto语句难于控制,尽量少用。goto语句在任务2.3简易计算器中已经使用过,这里不再举例说明。5、跳转语句(3)goto语句
goto 语句标号;三、任务分析:游戏的竞猜可能要经过多次才能结束。对于循环结构的程序设计,一般首先考虑1次循环如何进行,在本项目
中就应该考虑1次竞猜如何完成,然后再对竞猜部分代码加上循环语句使得程序循环。四、任务实施:1.打开任务4.1中未完成的“Guess
”控制台应用程序。2.输入玩家所猜数字,并判断是否正确: do{ Console.Writ
eLine("你猜?"); input = Convert.ToInt32(Console.Read
Line()); if (input == guess) {
Console.WriteLine("恭喜你,猜对了!\n");
Console.ReadLine(); break;四、任务实施:
} else if (input < guess) {
min = input; Console.WriteLine
("继续:" + min + "~" + max); } else
{ max = input;
Console.WriteLine("继续:" + min + "~" + max); }
}while (true );四、任务实施:3.当玩家所猜数字不正确时,给出缩小数字范围,让玩家继续猜数字,修改
程序段为: Console.WriteLine("你猜?"); inp
ut = Convert.ToInt32(Console.ReadLine()); if (inpu
t == guess) { Console.WriteLine
("恭喜你,猜对了!\n"); Console.ReadLine();
break; } else if (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;
} else if (input < guess)
{ min = input;//修正数字的最小值
Console.WriteLine("继续:" + min + "~" + max); }
else { max = input;//修正数字的最大值 Console.WriteLine("继续:" + min + "~" + max); } }五、任务小结:五、任务小结:因为循环条件是”true”,是一个常量值,所以这里while语句和do-while语句的使用区别不大,只有当第一次循环条件不满足时while语句和do-while语句在控制循环流程上才有区别。谢谢观看
献花(0)
+1
(本文系小磊老师首藏)