2015-06-30 41 views
1

我目前在Netbeans中学习Java,我正在尝试赋予给我的任务,这是在数组上的,而且我对于需要的问题的第2部分有困难在特定位置打印数字。在特定位置/位置java打印数组netbeans

第1部分要求我创建并打印一个大小为20的数组,以插入1到7之间的随机数。我已完成。

Random rand = new Random(); 

    int[] myArray = new int[20]; 

    System.out.print("Array: "); 

    for(int i = 0; i < myArray.length; i ++) 
    { 
     int random = rand.nextInt(7) + 1; 
     myArray[i] = random;   
     System.out.print(myArray[i] + " "); 
    } 

虽然部分2现在需要我生成到19 0之间的随机数,其表示在第1部分的阵列位置,程序将具有打印从该阵列的位置的4张随机数起同时考虑到帐户在阵列边界上。

正如现在我目前被困生成随机数从0到19后,不知道该怎么办时,产生random2位置,使阵列打印random2位置之后连续4个号码

Random rand2 = new Random(); 
    int random2 = rand2.nextInt(19) + 1; 
+0

连续4个?如果第二个随机数是18呢?并且你正在学习'java'而不是'javascript' –

+0

哦,我看到我为之造成的麻烦感到抱歉,并且感谢您为我编辑。当第二个随机数是18时,程序将打印位置19,20,1,2处的4个连续位置。 – Rind

回答

0

Random class生成0到n-1之间的随机数,其中n作为参数传递给nextInt。所以,你的目的,你应该使用下面的语句(您不需要创建Random类的另一个目的,你可以使用之前创建的同一个对象)

int random2 = rand.nextInt(20); 

因为数组索引将是19 0之间。接下来,你可以使用下面的循环打印数组中的4个连续的号码:

for(int i = random2; i < random2 + 4; i++) { 
    if(i < myArray.length) System.out.println(myArray[i]); 
    else break; 
} 

在这里,我们检查,如果我们在循环使用索引i超过数组边界,然后我们打出来的印刷循环。如果打印4个数字是一个硬性要求,您可以按照您的要求更改循环。希望这可以帮助!

+0

非常感谢您的帮助,花了我相当长的时间去了解并最终管理掌握你的解释。谢谢! – Rind

0

例如,你可以这样进行:

int count = 0; 
while(count < 4 && (random2 + count) < myArray.length){ 
System.out.println(myArray[random2 + count - 1]); 
count++; 
} 
+0

谢谢你的帮助!对不起,因为我还在学习Java,所以导致了所有的麻烦。我也设法了解你的方法。非常感谢! – Rind