需求
开发一个幸运小游戏,游戏规则如下:
游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字:
未猜中提示:“未命中”,并继续猜测
猜中提示:“运气不错,猜中了”,并输出该数据第一次出现的索引位置,最后把数组中的5个数据都输出看以下, 然后结束本游戏。
思路
1.首先我们定义一个长度为5的动态初始化的数组
2.将1-20之间的随机数放入数组中,可以用for循环来进行这一步
3.让用户输入所猜数字,如果猜对了结束循环,猜错了就一直猜,用死循环来让用户一直猜
4.将用户输入的数字和数组中的每一个元素进行比较
5.把该数的下标和整个数组打印出来给用户对比
代码
//导入三个需要用到的包
import java.util.Random;
import java.util.Scanner;
import java.util.Arrays;
//这里我直接省略了一句public class 类名{}的一句话
public static void main(String[] args) {
//new一个随机数叫number;
Random number = new Random();
//new一个扫描器叫user
Scanner user = new Scanner(System.in);
//定义一个动态初始化的数组
int arr[] = new int[5];
//把随机数装到数组中让用户猜
for (int i =0 ; i < arr.length ; i++) {
arr[i] = number.nextInt(20)+1;
}
//定义一个flag,待会用flag来退出循环
//这里退出的方法有很多种,例如return,System.exit(0),OUT,我们这里用flag来退出,很多方法大家可以自己试一试
boolean flag = true;
System.out.println("请输入你要猜的数");
//while循环当flag=true(条件成立时),我们进行猜数环节
while(flag){
//用户输入猜测的数字
int j = user.nextInt();
//用for循环遍历数组中的元素
for (int i = 0 ; i < arr.length ; i++){
//用if进行判断,用户输入的是否在该数组中,成立则打印出该数的下标位置,这里的下标就相当于是i,并且把flag的值改为false,让while的死循环结束
if (j == arr[i] ){
System.out.println(i);
flag = false;
}
}
//这里用if判断是不是需要打印重新输入的提示
if (flag){
System.out.println("数组没有该数组,请重新输入");
}
}
//这里我们使用Arrays方法来进行一个数组的输出供用户查阅
System.out.println(Arrays.toString(arr));
}