簡體   English   中英

為什么我的電話號碼不記錄並打印在我的數組中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM