之前我写了一个普通的猜数字游戏,那个是猜一个数字,然后提示你猜的大了还是小了。这次在学习完数组后,又来整活了,哈哈。
这次写的是系统随机生成10个1-50的数字,自己去猜,不提示大了还是小了,猜出后告诉你猜中了第几个,最后把所有系统生成的随机数展示。
在看下面代码时,可以看看之前的那一篇
package com.mijia.array;
import java.util.Random;
import java.util.Scanner;
public class RandomGame2 {
//相比与之前写过的随机数游戏,这个在里面加了数组的知识
//系统会随机生成10个1-50之间的数据,用户要猜一个数据,猜中这10个随机一个都算猜对,系统还要告诉用户猜中的是第几个
public static void main(String[] args) {
int[] arr = new int[10];//创建一个容量为10的数组
Random s = new Random();//创建一个随机数对象
//开始遍历数组,将随机数依次存入数组中
for (int i = 0; i < arr.length; i++) {
arr[i] = s.nextInt(50) + 1;//循环arr.length次,每一次都会产生随机数
}
//开始用户输入部分//这部分不知道要循环多少次才能猜中数字,所以用while
Scanner sc = new Scanner(System.in);//创建输入对象
OUT:
while (true) {
System.out.println("请输入一个1-50之间的数据");
int input =sc.nextInt();
//然后再用这个数据去对比数组中的每一个元素
for (int i = 0; i < arr.length; i++) {
if(input == arr[i])
{
System.out.println("恭喜你猜中了,你输入的"+input+"是10个数中的第"+(i+1)+"个");
//break;你会发现如果这里用break的话只能跳出for这个循环,并不能结束这个死循环
//可以使用OUT:
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j]+"\t");
}//把所有数据展示出来
break OUT;//这样就可以了!!当然还有别的方法如在死循环里定义一个boolean变量之类的
}
}
System.out.println("猜错了,重新来");
}
}
}