将数组与两个静态值进行比较

时间:2014-06-23 06:16:51

标签: java

所以我只是在做一些简单的事情。我创建了一个简单的Java程序,您可以在其中输入您将数据存储在数组中的滚动的猜测,然后将其与随机生成的两个数字进行比较。所以我的问题是如何在不引用精确索引(即不是数组[0] =数字[1])的情况下将数组与两个数字进行比较?我这样做主要是为了弄清楚数组是如何工作的。另外为什么其他错误?

public static void main (String [] args){

    java.util.Scanner input = new java.util.Scanner(System.in);
    int [] guess= new int [2];
    System.out.print("Enter " + guess.length + " values: ");
    for (int i=0; i<guess.length;i++)
        guess[i] = input.nextInt();

    method(guess);



}

public static String method(int [] that){
    int number1 = (int)(Math.random() * 6);
    int number2 = (int)(Math.random() * 6);  
    for (int i =0;i<that.length;i++){
        if(that[i]==number1 and that[i]+1==number2)
        {
            return "You got it";
        }
        else
        { 
            return "try again";
        }//end else
    } //end for
}//end method

3 个答案:

答案 0 :(得分:0)

您可以检查数组是否包含该元素

Arrays.asList(that).contains(number1)

如果数组包含其他元素为false

,则返回true

答案 1 :(得分:0)

如果您想要and两个条件写AND,则不能这样写&&。同样在if条件下,我认为您的意思是递增index that[i+1]==number2,您正在递增随机数本身。所以你的if条件看起来像: -

 if(that[i]==number1 && that[i+1]==number2)
        {
            return "You got it";
        }
    else{
      ..
         }

还想添加输出You got ittry again对用户不可见,因为您只是从method(guess);调用方法main()并返回{ {1}}但不对返回的String执行任何操作。你必须这样写它才能在控制台上看到输出。

String

答案 2 :(得分:0)

如果你想要在不引用精确索引的情况下将数组与两个数字进行比较,那么你可以做的第一件事是使用增强for循环来避免像这样的数组索引

for(int number: that){
  // do your comparison while iterating numbers in that(array) as "number" 
}