0

生成された数値を特定の範囲に入れようとしていますが、この出力が引き続き表示されます。

200 Generated numbers, 10 per line: 
99 Numbers from 0-20: 1
Numbers from 20-40: 0
Numbers from 40-60: 0
Numbers from 60-80: 0
Numbers from 80-100: 0
18 Numbers from 0-20: 2
Numbers from 20-40: 0
Numbers from 40-60: 0
Numbers from 60-80: 0
Numbers from 80-100: 0
56 Numbers from 0-20: 3

これが私の現在のコードです:

import java.util.Random;

public class RandomStats2 {

    public static void main(String[] args) {
        Random random = new Random ();
        int[] num = new int [5];
        System.out.println("200 Generated numbers, 10 per line: ");
        int numbersOnThisLine = 0;

        for(int i = 0; i < 200; i++){
            int nextNumber = random.nextInt(101);
            System.out.print(nextNumber + " ");
            numbersOnThisLine++;    

            if (numbersOnThisLine == 10){
                System.out.print("\n");
                numbersOnThisLine = 0;
            }

            if(i <=21) num[0]++;
            else if(i <=41) num[1]++;
            else if(i <=61) num[2]++;
            else if(i <=81) num[3]++;
            else if(i <=100) num[4]++;
            System.out.println("Numbers from 0-20: " + num[0]);
            System.out.println("Numbers from 20-40: " + num[1]);
            System.out.println("Numbers from 40-60: " + num[2]);
            System.out.println("Numbers from 60-80: " + num[3]);
            System.out.println("Numbers from 80-100: " + num[4]);               
        }   
    }
}

どうすればこれを修正できますか? また、else if ステートメントで 41 ~ 60 のような範囲を設定するにはどうすればよいですか?

4

5 に答える 5

0

for ループ内でこれらすべてを行う必要があるのでしょうか。あなたが何を達成しようとしているのかはわかりませんが、ワイルドな提案は、ループの外でそれを印刷することです.

現在、ランダムな整数ごとに見つけたものを出力しています。

于 2013-11-05T01:25:20.517 に答える
0

コードを見ると、10回の繰り返しごとに範囲を出力したいようです。その場合は、次のように if ステートメント内に print ステートメントを移動します。

import java.util.Random;

public class RandomStats2 {

    public static void main(String[] args) {
        Random random = new Random ();
        int[] num = new int [5];
        System.out.println("200 Generated numbers, 10 per line: ");
        int numbersOnThisLine = 0;

        for(int i = 0; i < 200; i++){
            int nextNumber = random.nextInt(101);
            System.out.print(nextNumber + " ");
            numbersOnThisLine++;    

            if (numbersOnThisLine == 10){
                System.out.print("\n");
                numbersOnThisLine = 0;
                System.out.println("Numbers from 0-20: " + num[0]); 
                System.out.println("Numbers from 20-40: " + num[1]);
                System.out.println("Numbers from 40-60: " + num[2]);
                System.out.println("Numbers from 60-80: " + num[3]);
                System.out.println("Numbers from 80-100: " + num[4]);
            }

            if(i <=21) num[0]++;
            else if(i <=41) num[1]++;
            else if(i <=61) num[2]++;
            else if(i <=81) num[3]++;
            else if(i <=100) num[4]++;            
        }   
    }
}
于 2013-11-05T01:26:56.707 に答える
0

統計は、次のように for ループの外にある必要があります。

import java.util.Random;

public class RandomStats2 {

public static void main(String[] args) {
    Random random = new Random ();
    int[] num = new int [5];
    System.out.println("200 Generated numbers, 10 per line: ");
    int numbersOnThisLine = 0;

    for(int i = 0; i < 200; i++){
        int nextNumber = random.nextInt(101);
        System.out.print(nextNumber + " ");
        numbersOnThisLine++;    

        if (numbersOnThisLine == 10){
            System.out.print("\n");
            numbersOnThisLine = 0;
        }

        if(i <=21) num[0]++;
        else if(i <=41) num[1]++;
        else if(i <=61) num[2]++;
        else if(i <=81) num[3]++;
        else if(i <=100) num[4]++;              
    }   
    System.out.println("Numbers from 0-20: " + num[0]);
    System.out.println("Numbers from 20-40: " + num[1]);
    System.out.println("Numbers from 40-60: " + num[2]);
    System.out.println("Numbers from 60-80: " + num[3]);
    System.out.println("Numbers from 80-100: " + num[4]); 
}

}

また、 if ステートメントについては、ループカウンターであるため、使用するつもりであり、使用nextNumberしないと思いますii

于 2013-11-05T01:27:03.560 に答える