2布尔检查不兼容

时间:2016-01-05 03:39:20

标签: java boolean-operations

尝试创建一个方法,该方法将生成一个数组,并为数组的每个索引分配不同的数字,从1到9(不能重复)。 请看一下我做的布尔比较,这是cmd在运行时停留的地方。我试图将两者分开但没有任何反应。

请帮忙。

import java.util.ArrayList;

class Testing {

public static void main (String[] args) {

  ArrayList<Integer> grid = new ArrayList<Integer>();

     int randNum;
     int count = 0;
     int size=8;

     for (int b = 0; b <=size; b++) { 

       while (count <= size) {

        randNum = (int) (Math.random() * 9);


           if (grid.contains(randNum) == false & randNum != 0 ) { 

            grid.add(randNum);
            count++;

          }
       }
     System.out.println(grid.get(b)); 
    }
   System.out.println("size: " + grid.size());
  }
 }

3 个答案:

答案 0 :(得分:1)

为什么不使用Fisher-Yates shuffle呢?

也就是说,用1-9然后Collections.shuffle()填充数组。

除此之外:在原始代码中使用&&而不是&

答案 1 :(得分:0)

我同意Matt Ball,创建一个阵列1-9并随机播放,但要回答你的问题,问题出在这里:

randNum = (int) (Math.random() * 9);
if (grid.contains(randNum) == false & randNum != 0 ) { 

应该是这样的:

randNum = (int) (Math.random() * 9) + 1;
if (grid.contains(randNum) == false) {

因为您将Math.random() * 9乘以0-8只会得到1-9之间的数字,而加1会给您s3fs.create(options[, callback])

答案 2 :(得分:0)

你在多个地方做错了或不知不觉地做错了:

  1. &安培;和&amp;&amp;是两件不同的事情。使用&amp;&amp;当你想继续检查第二个条件iff第一个操作数或条件求值为true否则要评估两个操作数时使用&amp;。

  2. 为什么乘以9.乘以10.乘以9仅限于1-8个数字。

  3. 为什么要在循环中打印网格并为其设置特殊循环?只需打印网格,它就会显示所有元素。

  4. 以下是您更正后的计划:

    import java.util.ArrayList;
    
    public class HelloWorld{
    
         public static void main(String []args){
            ArrayList<Integer> grid = new ArrayList<Integer>();
    
         int randNum;
         int count = 0;
         int size=8;
    
           while (count <= size) {
            randNum = (int) (Math.random() * 10);
            System.out.println(randNum+"test"+grid); 
               if (!grid.contains(randNum) && randNum != 0 ) { 
                   System.out.println("grid coming in here"+grid); 
                grid.add(randNum);
                count++;
    
              }
           }
         System.out.println(grid); 
       System.out.println("size: " + grid.size());
      }
    }
    

    希望它有所帮助!