Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次将输入值与数组中的元素匹配_Java_Arrays - Fatal编程技术网

Java 每次将输入值与数组中的元素匹配

Java 每次将输入值与数组中的元素匹配,java,arrays,Java,Arrays,我做了一个生成随机数的函数,我想把所有生成的随机数都放在一个数组中。我进行了一次登录,我想检查输入的数字是否与数组中的至少一个元素与生成的数字匹配。 现在我的问题是,每当我输入一些数字时,程序只检查数组的最后一个元素。这是我的密码: int-sukicode[]=new-int[100]; 整数计数=0; 布尔值再次=true,notReg=true; 扫描仪扫描=新扫描仪(System.in); Random rand=新的Random(); 同时(再次){ int x; 对于(x=1000;

我做了一个生成随机数的函数,我想把所有生成的随机数都放在一个数组中。我进行了一次登录,我想检查输入的数字是否与数组中的至少一个元素与生成的数字匹配。
现在我的问题是,每当我输入一些数字时,程序只检查数组的最后一个元素。这是我的密码:

int-sukicode[]=new-int[100];
整数计数=0;
布尔值再次=true,notReg=true;
扫描仪扫描=新扫描仪(System.in);
Random rand=新的Random();
同时(再次){
int x;
对于(x=1000;x<9000;){
x=rand.nextInt();
}
计数++;
系统输出println(x);
sukicode[count]=x;
System.out.println(“[1]显示数组?\n[2]登录\n[3]生成随机数”);
系统输出打印(“选择:”);
int ch=scan.nextInt();
如果(ch==1){
再次=假;

for(int i=1;i您需要一个for循环,并将数组中的所有值与用户输入进行比较。现在您只需比较count处的元素,它总是最后一个元素

while (notReg) {
   System.out.print("\nEnter number: ");
   int userGuess = scan.nextInt();
   for (int element : sukicode) {
      if (element == userGuess) {
         notReg = false;
         System.out.println("Hi");
         break; // Quits for loop early since there is no need to compare rest of elements
      }
   }
   // If none of the elements matched the input then this will print
   if (notReg) {
      System.out.println("You're not in yet!");
   }
}
要生成9000以上的随机数,可以执行以下操作

int randomNumber = rand.nextInt(Integer.MAX_VALUE) + 9000;  // The lower bound will be 9000
System.out.println(randomNumber);
sukicode[count] = randomNumber;
count++;
请注意,在数组中插入后,我移动了
count++
。这样做是为了使用数组的第一个索引
0
。否则,它会将第一个值存储在索引
1

输出:

194403844
[1]Display array?
[2]Log in
[3]Generate random number
Select: 2

Enter number: 194403844
Hi

如果要在某个范围内生成随机整数。这是一种低效的方法。此外,您需要一个for循环来迭代每个元素并进行比较。我使用了该方法,但没有效果:
194403844
[1]Display array?
[2]Log in
[3]Generate random number
Select: 2

Enter number: 194403844
Hi