Java学习之基础训练三-----猜字符小游戏(自定义函数,在main函数中调用)
来源:互联网 发布:bcg矩阵是什么意思 编辑:程序博客网 时间:2024/06/05 05:22
1.方法:函数/过程
- 1)用于封装一段特定的逻辑功能
- 2)方法尽可能的独立(一个方法只干一件事)
- 3)方法可以被反复的调用多次
- 4)避免代码的重复,有利于代码的维护,有利于团队协作开发
2.方法的定义:
修饰词 返回值类型 方法名(参数列表){ 方法体}
- 方法可以有参也可以无参,但有参更灵活
- 方法可能有返回值也可以没有返回值
- 无返回值时,返回值类型写为void
- 有返回值时,返回值类型为特定的数据类型
3.方法的调用:
- 1)无返回值方法
- 方法名(有参传参);
- 2)有返回值方法
- 数据类型 变量 = 方法名(有参传参);
- 方法名(有参传参);//不报错,但不建议使用
4.return:
- 1)return 值;//1.结束方法的执行 2.返回一个值给调用方
- 2)return;//1.结束方法的执行(只用在无返回值void的方法里面)
案例:猜字符小游戏
- 要求:程序随机生成不重复的五个大写字母,玩家猜。(程序运行时输出生成的五个字母,便于测试程序)
- 玩家输入exit推出程序,将玩家输入的字母全部转为大写
- 制造死循环,直到玩家猜对
- 计分规则:猜对一个字符得100分(位置也要对),猜错扣10分。
代码:
package day07;import java.util.Scanner;//猜字符小游戏public class Guessing { //主方法 public static void main(String[] args) { Scanner scan = new Scanner(System.in); char[] chs = generate(); //获取随机字符数组 System.out.println(chs); //作弊 int count = 0; //猜错的次数 while(true){ //自造死循环 System.out.println("猜吧!"); String str = scan.next().toUpperCase(); //接收用户输入的字符串,并转换为大写字母 if(str.equals("EXIT")){ System.out.println("下次再来吧!"); break; } char[] input = str.toCharArray(); //将字符串转换为字符数组 int[] result = check(chs,input); //对比:随机字符数组与用户输入的字符数组 if(result[0]==chs.length){//五个位置都对,表示猜对了 int score = 100*chs.length-10*count; //1个字符100分,猜错一次扣10分 System.out.println("猜对了!得分为:"+score); break; }else{ count++; //猜错的次数增1 System.out.println("字符对个数为:"+result[1]+",位置对个数为:"+result[0]); } } } //生成随机字符数组 public static char[] generate(){ char[] chs = new char[5]; //随机字符数组 char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; //随机字符范围数组 boolean[] flags = new boolean[letters.length]; //开关数组 for(int i=0;i<chs.length;i++){ int index; do{ index = (int)(Math.random()*letters.length); //随机下标(0到25之间的随机数) }while(flags[index]==true); /* * 当下标index对应的开关为true时,表示对应的字符已存过,则重新生成index下标 * 当下标index对应的开关为false时,表示对应的字符未存过,则继续存储字符 */ chs[i] = letters[index]; //基于下标index到letters中获取对应的字符,并赋值给chs中的每一个元素 flags[index] = true; //将下标index对应的开关修改为true,表示已存过 } return chs; } //对比:随机字符数组与用户输入的字符数组 public static int[] check(char[] chs,char[] input){ int[] result = new int[2]; //0,0(假设result[0]为位置对,result[1]为字符对) for(int i=0;i<chs.length;i++){ //遍历随机字符数组 for(int j=0;j<input.length;j++){ //遍历用户输入的字符数组 if(chs[i]==input[j]){ //字符对 result[1]++; //字符对个数增1 if(i==j){ //位置对 result[0]++; } break; //剩余input元素不再参与比较了 } } } return result; }}
运行结果:
阅读全文
0 0
- Java学习之基础训练三-----猜字符小游戏(自定义函数,在main函数中调用)
- JAVA中在main函数中调用变量时注意事项
- 在c语言中自定义了一个函数,在main中调用时提示找不到标识符
- 在main()之前调用Bootstrap函数
- java中main函数
- C++中调用main函数
- Java学习之面向对象一-----创建学生类并在main函数中实例化学学生对象
- 在块中调用自定义的函数
- Java学习之基础训练一
- main函数中调用java小程序测试Color类
- Java中main函数调用同类中的方法
- Java中main函数调用同类中的方法
- X265代码学习之main()函数
- C学习笔记 13 atexit 在main函数调用结束后调用函数
- 在中断函数和MAIN函数中同时调用同一个函数的有趣现象
- 函数单独编译与函数在main函数中调用编译后生成汇编代码对比
- 编写递归函数求出n的阶乘(自定义main函数,调用定义的递归函数)
- JAVA学习 (1) main函数
- 欢迎使用CSDN-markdown编辑器
- 堆内存分配
- iOS二维码扫描
- 《Python学习手册》学习笔记(11)之第11章赋值、表达式和打印(关键词:编程语言/Python/赋值/表达式/打印)
- linux-image-3.19.0-66-generic造成dkpg无法正常工作的问题
- Java学习之基础训练三-----猜字符小游戏(自定义函数,在main函数中调用)
- Good Numbers
- ArrayList JDK9源码解读
- poj1236 Network of Schools (Targan强连通图缩点)
- 1.前端之路-一个能进行2d缩放旋转的小东西
- opencv是什么
- 排序算法Day2
- [2017.10.6]作业01
- <C语言>关于函数返回值是指针,取不到值的问题研究