尝试创建一个方法,该方法将生成一个数组,并为数组的每个索引分配不同的数字,从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());
}
}
答案 0 :(得分:1)
答案 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)
你在多个地方做错了或不知不觉地做错了:
&安培;和&amp;&amp;是两件不同的事情。使用&amp;&amp;当你想继续检查第二个条件iff第一个操作数或条件求值为true否则要评估两个操作数时使用&amp;。
为什么乘以9.乘以10.乘以9仅限于1-8个数字。
为什么要在循环中打印网格并为其设置特殊循环?只需打印网格,它就会显示所有元素。
以下是您更正后的计划:
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());
}
}
希望它有所帮助!