Java代码问题。
import java.util.Random;
public class arrayTable {
public static void main (String[] args) {
System.out.println("Index\t + Value");
int Array[] = new int[10];
Random Object = new Random();
int Values;
// Assigning random values to each element of array
for(int i=0; i<Array.length;i++) {
Values= (1+Object.nextInt(50));
Array[i] = Values;
}
for(int j=0;j<Array.length;j++) {
System.out.println(j + "\t" + Array[j]);
}
}
}
这里使用这个代码我在对象旁边写了(1+)所以索引应该从1开始,但是当我运行代码总是从索引0开始,如果我输入2+或者无关紧要3+ pr无论如何。任何人都可以帮助指出代码的问题。
提前谢谢你。
答案 0 :(得分:3)
我在对象旁边写了(1+)所以索引应该从1开始
您在值旁边写了1+而不是索引!
所以,你在做的是:
array[0] = 50 + 1;
而不是:
array[0 + 1] = 50;
如果你想从索引1开始,你应该在这里写一下:
Array[i + 1] = Values;
但是,当您进入for
循环时,您可能遇到ArrayIndexOutOfBoundsException
,因此,更好的想法是:
for(int i=1; i<Array.length;i++) { //Look the "i" was initialized with 1 and not with 0.
记住:阵列从0
索引开始
如果你想“跳过”第一个元素,那么对for
循环的上述修改应该有效,但如果你想让它从1
运行到10
那么它就是不好的主意,因为它应该从0
到9
您还应该注意遵循Java命名约定:
firstWordLowerCaseVariable
firstWordLowerCaseMethod()
FirstWordUpperCaseClass
ALL_WORDS_UPPER_CASE_CONSTANT
并始终如一地使用它们,这将使您和我们更容易阅读和理解您的代码。
另外,尽量不要将类/变量命名为Java类名称:
Object
或Array
或List
等可能是错误的选择,同样object
小写会是一个坏主意,因为它不是@nicomp建议的描述在下面的评论
但是当我输入数组[i + 1]时它仍会从索引0打印出来,如果例如我在哪里做骰子我希望它从索引1开始,是否有办法做到这一点?
我认为您没有更改for(int j=0;j<Array.length;j++) {
循环,从1
制作骰子我会:
如下所示填充(1 - 6)(在for
循环内):
dice[0] = 1;
dice[1] = 2;
...
dice[5] = 6;
//Example of for loop
for (int i = 0; i < dice.length; i++) {
dice[i] = i + 1;
}
获取一个名为random
的随机数(0-5之间)
random
例如:
random = 3;
//dice[random] = 4;
System.out.println(dice[random]);