[英]Why doesn't my number record and print in my array?
好的,所以我試圖制作一個非常簡單的數字生成器,其限制為1和100。我已經閱讀了所有可以在網上找到的內容,無法弄清楚為什么我的代碼沒有記錄1到100之間的數字。然后,數組將打印數組中的數字。 當我運行代碼時,數字36一遍又一遍地打印出來。 我究竟做錯了什么?
import java.util.Random;
public class NumberGen
{
public static void main(String[] args)
{
int numbers[]=new int[10];
Random gen = new Random();
for(int i=0; i<numbers.length;i++)
{
int number=gen.nextInt();
while(number<1 || number>100)
{
number=gen.nextInt();
}
while(number<=100 && number >=1)
{
numbers[i]=number;
System.out.println(numbers[i]);
}
}
}
}
第二個難道不是嗎? 我很確定這是一個無限循環。 以及為什么要使用頭一段時間?
int number=gen.nextInt();
while(number<1 || number>100)
{
number=gen.nextInt();
}
當你可以int number = gen.nextInt(100)+1;
您應該使用nextInt
另一種形式-> http://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)
在您的情況下:
int number=gen.nextInt( 100 ) + 1;
考慮一下這里發生了什么:
for(int i=0; i<numbers.length;i++)
{
/**
*int number=gen.nextInt();
*while(number<1 || number>100)
*{
* number=gen.nextInt();
*}
**/
number = 1;
while(number<=100 && number >=1)
{
numbers[i]=number;
System.out.println(numbers[i]);
}
}
for循環中的while卡在無限循環中,因為'number'永不改變
您應該嘗試將數字存儲在單個for / while循環中,然后在單獨的for / while循環中打印
for(int i=0; i<numbers.length;i++){
//FYI gen.nextInt(100) generates a int from 0 to 99
//store values
}
for(int i=0; i<numbers.length;i++){
//print values in arr
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.