第六章方法、猜字母游戏

上传人:平*** 文档编号:13427778 上传时间:2017-10-23 格式:DOCX 页数:38 大小:293.63KB
返回 下载 相关 举报
第六章方法、猜字母游戏_第1页
第1页 / 共38页
第六章方法、猜字母游戏_第2页
第2页 / 共38页
第六章方法、猜字母游戏_第3页
第3页 / 共38页
第六章方法、猜字母游戏_第4页
第4页 / 共38页
第六章方法、猜字母游戏_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第六章方法、猜字母游戏》由会员分享,可在线阅读,更多相关《第六章方法、猜字母游戏(38页珍藏版)》请在金锄头文库上搜索。

1、Top1. 方法2. 猜字母游戏1. 方法1.1. 方法(函数,过程)各种语言都有方法的概念(有的语言称其为函数或过程),java 中也一样。方法常常用于封装一段特定的逻辑功能,例如:执行计算或操作方法可以在程序中反复被调用,这样,就可以减少代码的重复,更便于程序的维护。1.2. 方法(函数、过程)一个排序的功能,你也需要排,我也需要排,他也需要排,难道每次都要重新写吗?显然很麻烦,后期修改维护也很麻烦,每个地方都需要改,并且有大量的代码重复,有没有一种方式可以解决这个问题呢?那就是方法。各种语言都有方法的概念(有的语言称其为函数或过程),其主要实现对一段特定逻辑功能的封装,如:执行计算或操作

2、。若想要使用这段功能,只需调用一下即可。方法可以在程序中反复被调用,这样可大大减少代码的重复,从而便于程序维护。1.2.1. 定义方法(函数、过程)的功能方法用于封装一个特定的功能,定义时需要考虑五个要素:修饰词、返回值类型、方法名、参数列表、方法体。通过下面的代码进行讲解:1. public static int sum ( int num1 , int num2 ) 2. / 方法体3. 其中,public static 为修饰词(后续课程详细介绍这两个关键字),int 为返回值类型,sum 为方法名(见名知义),int num1,int num2 为参数列表。一对大括号中的为方法体(具体

3、的业务功能实现)。1.2.2. 定义参数和返回值方法的参数是指:在调用时传递给方法,需要被方法处理的数据。方法可以有参数也可以没有参数,绝大部分方法为有参数的,因为方法有参数可以使方法的处理更加灵活;在方法定义时,需要声明该方法所需要的参数变量(注意:声明该参数变量时需添加数据类型信息);在方法调用时,会将实际的参数值(数据)传递给方法的参数变量,同时必须保证传递参数的类型和个数符合方法的声明(后面详细介绍)。如下为几个方法定义的实例:1. void say() /无参方法2. void say( string name ) /1 个参数方法3. int sum ( int num1 , in

4、t num2 ) /2 个参数方法上面的示例主要演示的是方法的参数信息,下面看一下方法的返回值。方法调用结束后可以返回一个数据,称之为返回值。当然,方法调用结束后也可以不返回数据,但不管是返回数据也好不返回数据也好,java 语法规定,方法在声明时必须指定返回值类型,可分如下的两种情况进行处理: 若方法不需要返回数据,将返回值类型声明为 void。 若方法需要返回数据,将返回值类型声明为特定数据类型。1.3. 方法的调用1.3.1. return 语句在方法体中可通过 return 语句返回,return 语句的作用在于结束方法且将数据返回给调用方。若方法定义的返回值类型为非 void,则方法

5、体中必须使用 return 返回,并且return 后的表达式类型必须与方法定义的返回类型匹配,如下代码所示。1. return num1 +num2 ; 若方法定义的返回值类型为 void,则方法体中可以不使用 return 返回,也可以使用 return 返回,若使用 return ,则它的作用仅在于结束方法调用而返回调用方。1. return;1.3.2. 调用方法时的参数传递下面将通过几个实例演示调用方法时如何传递参数:示例一,定义方法:1. public static int sum ( int num1 , int num2 ) main 方法中调用:1. int result =

6、 sum(5,6); 2. int a = 50, b = 60;3. int result = sum ( a , b );示例二,定义方法:1. public static void sayHi(String name) main 方法中调用:1. sayHi(“wkj”);2. sayHi(”zhangsan”);分析如上代码,方法调用时,会将实际的参数值(5,6 ,“wkj”,”zhangsan”)传递给方法的参数变量(int num1, int num2,String name),同时必须保证传递参数的类型和个数符合方法的声明。若不匹配会出现编译错误。下面通过一个实例详细讲解方法调用

7、的过程,代码如下所示:1. public static int max(int a, int b) 2. public static void main(String args) 3. int a = 5; int b=6;4. int myMax = max(5,6);5. 上面的代码执行过程如下:1. 为 main 方法中的变量 a、b 、myMax 分配空间并赋值。参见图 - 2 。图- 21. 调用方法 max,为 max 方法的参数变量 a,b 分配空间。参见图 3。图- 31. 将调用值传递到参数变量中。参见图 4。图- 41. max 方法运行完返回,参数变量空间释放。参见图 5

8、。图- 51. main 方法中的 myMax 变量得到返回值。参见图 6。图- 62. 猜字母游戏详见 cookbook。TopJAVA Fundamental DAY061. 猜字母游戏 设计数据结构2. 猜字母游戏 设计程序结构3. 猜字母游戏 实现字母生成方法4. 猜字母游戏 实现字母检测方法5. 猜字母游戏 实现主方法1 猜字母游戏 设计数据结构1.1 问题有猜字母游戏,其游戏规则为:程序随机产生 5 个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串。玩家可以猜测多次,每猜测一次,则由系统提示结果。如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出;如果没有猜对,则

9、提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续。本案例要求使用交互的方式实现此游戏:由玩家在控制台输入所猜测的字符串,如果所猜测的字符串与结果并不完全相同,则在界面输出比较后的结果,并提醒玩家继续猜测。交互过程如图7 所示:图- 7由图7 可以看出,每次猜测后,程序将比较玩家所输入的字符串,比较字符以及字符的位置,然后提示结果:5 个字符中正确的字符个数,以及位置正确的字符个数,以便于玩家判断后续如何进行猜测。玩家终于猜测正确后,游戏结束,并给出游戏得分,交互过程如图8 所示:图- 8其中,游戏的得分规则为:字符的个数乘以 100 为总分,即此游戏的总分为

10、 500 分。玩家如果第一次就猜对,则得满分(500 分);每多猜测一次,则扣 10分。由图8 可以看出,玩家共猜测了 5 次,因此,得分为 450。最后,如果玩家在控制台录入 exit,则游戏中止,程序结束。交互过程如图9 所示:图- 9本案例需要实现猜字母游戏中的数据结构设计,即,设计相关的数据结构,可以存储此程序中所用到的相关数据。1.2 方案分析猜字母游戏可以看出,此程序需要存储随机生成的字母个数、随机生成的字符串、玩家猜测的总次数、玩家录入的字符串,以及比较后的结果。因此,设计如下变量来存储此游戏中需要用到的相关数据: int 类型变量 count:用于记录玩家猜字母的总次数; ch

11、ar 数组类型变量 input:用于保存用户猜测的数据。 char 数组类型变量 chs: 用于保存随机生成的多个字母所组成的字符串; int 类型数组变量 result :用于保存判断的结果。此数组有两个元素,第一个用于保存完全猜对的字母个数(字符正确且位置也正确),第二个元素用于保存猜对的字母个数(字符正确但位置不正确)。1.3 步骤实现此案例需要按照如下步骤进行。步骤一:定义类及 main 方法首先定义一个名为 GuessingGame 的类,并在类中添加 Java 应用程序的主方法 main,代码如下所示:1. public class GuessingGame 2. public s

12、tatic void main(String args) 3. 4. 5. 步骤二:存储猜测的次数定义一个 int 类型变量 count,用于记录玩家猜字母的总次数,代码如下所示:1. public class GuessingGame 2. public static void main(String args) 3. int count = 0;4. 5. 步骤三:存储用户猜测的数据char 数组类型变量 input:用于保存用户猜测的数据,代码如下所示:1. public class GuessingGame 2. public static void main(String args)

13、 3. int count = 0;4. char input=null;5. 6. 步骤四:存储随机生成的多个字母定义一个 char 数组类型 chs, 用于保存随机生成的字母。代码如下所示:1. public class GuessingGame 2. public static void main(String args) 3. int count = 0;4. char input=null;5. char chs =null;6. 7. 步骤五:存储比较结果定义一个 int 数组类型变量 result,用于存储比较的结果。该数组有两个元素,第一个用于保存完全猜对的字母个数(字符和位置

14、均正确),第二个元素用于保存猜对的字母个数(字符正确,但是位置不正确)。代码如下所示:1. public class GuessingGame 2. public static void main(String args) 3. int count = 0;4. char input=null;5. char chs =null;6. int result =new int2;7. 8. 1.4 完整代码本案例的完整代码如下所示:1. public class GuessingGame 2. public static void main(String args) 3. / 表示玩家猜测的次数

15、4. int count = 0;5. /表示用户猜测的数据6. char input=null;7. / 表示猜测的字符串8. char chs =null;9. / 用于保存判断的结果10. int result = new int2; 11.12.隐藏2 猜字母游戏 设计程序结构2.1 问题本案例需要实现猜字母游戏程序中的程序结构设计。2.2 方案分析猜字母游戏可以看出,程序首先需要随机产生 5 个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能;其次,每当玩家猜测一次后,程序需要将玩家录入的字符串和正确答案进行比较,统计正确的字符个数以及正确的位置个数,因此,也可以先定义一个方法,专用于实现比较功能。这样,就可以在 main 方法中调用这两个方法。2.3 步骤实现此案例需要按照如下步骤进行。步骤一:定义方法 generate()在 Guess

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号