数组重修,猜数小游戏

要求:从键盘输入一个数,判断数组是否包含此数,运用随机数

我们可能会这样写

import java.util.Random;
import java.util.Scanner; import org.junit.Test; /**
* 数组示例:从键盘输入一个数,判断数组是否包含此数
* @author fei
*/
public class GuessNum { @Test
public void guessNum() {
Random rand = new Random();// 产生随机数的工具,生成的是伪随机数 int[] sysNums = new int[5];// 准备长度为5的数组
int len = sysNums.length;// 保存数组的长度 for (int i = 0; i < len; i++) {// for循环为数组元素赋值
// 生成一个10以内的数并赋值给数组元素
sysNums[i] = rand.nextInt(10);
} System.out.println("请输入一个你认为数组中存在的数:(10以内)");
Scanner input = new Scanner(System.in);// 接收用户的输入
int userNum = input.nextInt(); // 遍历数组,判断猜的数字是否存在于数组
for (int temp : sysNums) {
if (userNum == temp) {
System.out.println("恭喜,猜对了!");
break;
} else {
System.out.println("很遗憾,没猜对");
}
}
}// guessNum }

输出结果:

情况一:猜错

情况二:猜对了

我们看到,不管猜对,还是猜错,程序输出好多次提示信息,这不是我们想要的结果。

下面是方法改进后的代码

@Test
public void guessNumPlus() {
Random rand = new Random(); // 定义数组并循环随机赋值
int[] sysNums = new int[5];
int len = sysNums.length;
for (int i = 0; i < len; i++) {
sysNums[i] = rand.nextInt(5);
} // 提示并接收玩家输入
System.out.println("请输入一个你认为数组中存在的数:(10以内)");
Scanner input = new Scanner(System.in);
int userNum = input.nextInt(); // 循环遍历判断数组是否包含玩家猜的数,并以isRight标记是否猜中
boolean isRight = false;
for (int temp : sysNums) {
if (userNum == temp) {
isRight = true;
break;
}
} // 根据标记输出相应提示信息
if (isRight) {
System.out.println("恭喜,猜对了!");
} else {
System.out.println("很遗憾,没猜对");
}
}// guessNumPlus

输出结果:

情况一:猜对

情况二:猜错

终于ok,一切正常,舒服了

当然,还有很多改进的地方,比如给几次机会,加上循环啥的

数组重修,打印三角形

import org.junit.Test;

/**
* i数组示例:打印正三角形
* @author fei
*/
public class PrintTriangle { @Test
public void printTriangle() {
// 定义一个字符数组
char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
int len = chars.length; // 外循环控制行数
for (int i = 1; i <= len; i++) {
for (int j = i; j < len; j++) {
// 输出空格
System.out.print(" ");
}
for (int j = 1; j <= i * 2 - 1; j++) {
System.out.print(chars[i - 1]);
}
System.out.println();
}
} }

输出结果:

最新文章

  1. Java对象序列化文件追加对象的问题,以及Java的读取多个对象的问题解决方法。
  2. 【BZOJ-3122】随机数生成器 BSGS
  3. JavaWeb学习笔记——javabean
  4. Jquery如何获得&lt;iframe&gt;嵌套页面中的元素
  5. Swift概览
  6. 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条
  7. 转载纯真ip库
  8. 2017 ZSTU寒假排位赛 #2
  9. 【转】搭建spark环境 单机版
  10. user 不在 sudoers 文件中。此事将被报告。
  11. BZOJ.5397.circular(随机化 贪心)
  12. 时时监听input内容的改变
  13. [Codeforces Round #508 (Div. 2)][Codeforces 1038E. Maximum Matching]
  14. 解决Flask局域网内访问不了的问题
  15. java实现《剑指offer》(二)11~20 更新中
  16. NOI 2015 Bless All!
  17. 用Python开始机器学习(2:决策树分类算法)
  18. Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
  19. Mysql行转列的简单应用
  20. linq 多条件join

热门文章

  1. centos 6.8 安装 WebVirtMgr
  2. (转)SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块
  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_5_综合案例_文件搜索
  4. mysql analyze和optimize
  5. 06 使用bbed提交delete的数据--01
  6. [Usaco2005 mar]Yogurt factory 奶酪工厂
  7. JSP程序不能正常运行 MyEclipse10 Tomcat6.0
  8. python列表-定义
  9. 生产者消费者模型(JoinableQueue)
  10. Python 3实现网页爬虫