嗨,我是java编码的新手,我正在尝试创建随机数(我已经完成),我试图将这些随机数作为坐标分配到2D数组中并打印“A'在坐标处。任何帮助表示赞赏。
package training;
import java.util.Random;
public class Training {
public static void main(String[] args) {
char[][] values = new char[10][10];
int foodX[] = new int[15];
for (int i = 1; i < foodX.length + 1; i++) {
int minFood = 0;
int maxFood = 10;
int randNum1 = minFood + (int) (Math.random() * (maxFood - minFood) + 1);
int minFoodY = 0;
int maxFoodY = 10;
int randNum2 = minFoodY + (int) (Math.random() * (maxFoodY - minFoodY) + 1);
for (int j = 1; j < foodX.length + 1; j++) {
values[randNum1][randNum2] = 'A';
}
}
// Assign three elements within it.
// Loop over top-level arrays.
for (int i = 0; i < values.length; i++) {
// Loop and display sub-arrays.
char[] sub = values[i];
for (int x = 0; x < sub.length; x++) {
System.out.print(sub[x] + " ");
}
System.out.println();
}
}
}
答案 0 :(得分:0)
Java中的数组是零索引的。这意味着如果您按如下方式声明数组leftJoin('deposits', function($join) {
$join->on('deposits.user_id', '=', 'users.id')
->on('deposits.status','=',DB::raw("'completed'"))
->on('deposits.created_at', '>=', \Carbon\Carbon::now()->subDays(25);
})
:
myArray
然后你要创建一个包含final int[] myArray = new int[10];
值的10元素数组。这也适用于二维数组,例如代码中的myArray[0], myArray[1], ..., myArray[9]
数组。但是,您已定义values
和randNum1
以返回randNum2
到1
范围内的值。当其中任何一个值设置为10
时,10
将抛出values[randNum1][randNum2]
,因为您尝试使用超出其范围的索引来引用该数组。
除此之外,您还创建了一个数组ArrayIndexOutOfBoundsException
,除了确定其长度之外,您无需执行任何操作。在这种情况下,为此目的声明一个常量foodX
值会更好。最后,虽然您已导入int
类,但您使用java.util.Random
生成随机变量,这并不依赖于此。您也可以使用Math.random()
,如果使用随机数种子,这将非常有用,但这可以放在一边。
如果没有遵循任何额外的考虑因素并且让我的输出只是按照我的预期工作,我会以下列方式重写你的课程:
Random.nextDouble()