嗨,我对家庭作业感到嗤之以鼻......我得到了与我期待的不同的价值 这是我的类变量
我有: 种子....(通过扫描仪应该是:12345-测试值,所以我得到与我的教练相同的结果 - ) LenghtOfArray ....(通过扫描仪) 最终MAX = 8;
我不知道如何在我的代码中进行协调以使其工作
我有for循环:
Random Obj = new Random (seed);
int []myArray = new int [LengthOfArray];
for(int i = 0 ; i < myRandomArray.length ; i++) {
myArray[i] = (int) Obj.nextLong();
System.out.print(myArray[i] + " ");
}
System.out.println();
现在我缺少MAX
变量,所以我的输出应该是:
4 4 6 0 4 4 7 0 7 6 5 6
但我明白了:
-70013384 64862043 543438317 1940859862 924168001 1943285380 -62817581 -1920529480 541298859 -1439409345 520340403 -1293274375
那么我怎样才能强制执行我的代码以使我的MAX出现在我的MAX范围内(&lt; 8)
答案 0 :(得分:2)
如果我理解您的问题,请先定义MAX
-
final int MAX = 8;
使用Random.nextInt(int)
指定最大值(不包括0 - MAX-1
),如
myArray[i] = Obj.nextInt(MAX);
最后,你应该真正重命名你的Random
实例(Obj
是一个糟糕的变量名,而且每个Java的命名约定都没有大写字母 - 变量以小写字母开头)。在Java 8+中,您也可以使用IntStream
和lambdas来编写
Random rand = new Random();
int lengthOfArray = 10;
final int MAX = 8;
int[] myArray = IntStream.generate(() -> rand.nextInt(MAX)) //
.limit(lengthOfArray).toArray();
System.out.println(IntStream.of(myArray).mapToObj(String::valueOf) //
.collect(Collectors.joining(" ")));
答案 1 :(得分:2)
您可能正在寻找Random
类中的nextInt(int n)
方法,该方法可用作:
myArray[i] = obj.nextInt(9); //including 8 and 0
PS :obj
这是您的Obj
,只是我更喜欢遵循 camelCase 惯例。
答案 2 :(得分:0)
你的数组的长度应该是12,而不是8.然后得到一个介于0和8之间的数字来存储在你的数组中
Obj.nextInt(9);