对于代码中出错的循环

时间:2014-10-01 00:56:21

标签: java loops random

UPDATE ****

我的程序正在编译并正确执行,但现在我遇到了另一个问题。我需要创建每次生成某个随机数时都会计数的变量。例如,count0应该记录生成整数0的次数。这就是我所拥有的:

import java.util.Random;

public class L10{
public static void main(String[] args){
int total = 100;

Random randObj = new Random();

final int UPPER_BOUND = 10;


for (int i=0; i < total; i++){
int randomInt = randObj.nextInt(UPPER_BOUND);

System.out.print("\n" + randomInt);


int count0 = 0;
if(randomInt==0){

System.out.print(randomInt + count0);
}
int count1 = 1;
if(randomInt==1){

}
int count2 = 2;
int count3 = 3;
int count4 = 4;
int count5 = 5;
int count6 = 6;
int count7 = 7;
int count8 = 8;
int count9 = 9;
}



}
}

输出显示随机数,在本例中为零,并在其旁边打印零。我不确定如何编写代码来跟踪生成零的次数。有什么建议吗?

4 个答案:

答案 0 :(得分:0)

试试这个:

import java.util.Random;

public class HelloWorld{

    public static void main(String []args){
    Random randObj = new Random();

    final int UPPER_BOUND = 10;
    int total = 100;
    String star = "*";

        for (int i=0; i < UPPER_BOUND; i++){
            int randomInt = randObj.nextInt(total);
            System.out.print(randomInt);
        }
    }
}

修改:

Random randObj = new Random();

int randomInt = randObj.nextInt(total);

答案 1 :(得分:0)

我认为您的目的是生成0-9范围内的100个随机整数,并计算每个整数的频率。

对每个计数使用单独的变量是一个糟糕的主意。更好的想法是使用大小为10的单个数组,其索引是随机数。

修改您的代码:

public static void main(String[] args){
    final int TOTAL = 100, UPPER_BOUND = 10;
    Random randObj = new Random();
    int[] count = new int[UPPER_BOUND];
    // collect frequencies
    for (int i=0; i < TOTAL; i++)
        count[randObj.nextInt(UPPER_BOUND)]++;
    // report frequencies
    for (int i=0; i < UPPER_BOUND; i++)
        System.out.print(i + "'s frequency was " + count[i];
}

答案 2 :(得分:0)

import java.util.Random;

public class L10{
public static void main(String[] args){
int total = 100;
int[] CountArray = new int[total];    //count numbers    
Random randObj = new Random();    
final int UPPER_BOUND = 10;   

for (int i=0; i < total; i++){
int randomInt = randObj.nextInt(UPPER_BOUND);

System.out.print("\n" + randomInt);

switch(randomInt){
    case(0):{
       CountArray[0]++;
       break;
    }
    case(1):{
       CountArray[1]++;
       break;
    }
    case(2):{
       CountArray[2]++;
       break;
    }
    case(3):{
       CountArray[3]++;
       break;
    }
    case(4):{
       CountArray[4]++;
       break;
    }
    case(5):{
       CountArray[5]++;
       break;
    }
    case(6):{
       CountArray[6]++;
       break;
    }
    case(7):{
       CountArray[7]++;
       break;
    }
    case(8):{
       CountArray[8]++;
       break;
    }
    case(9):{
       CountArray[9]++;
       break;
    }
}
}
    System.out.println("");
for(int j = 0;j<UPPER_BOUND;j++){
    System.out.println("number of "+ j+" generated "+CountArray[j]);
}
}
}

这是我想出的代码。我使用一个数组来计算每个元素,并使用switch case分别计算它们。所以在for循环结束时。我打印了它们。这样,您就可以获得独特的元素数量。

答案 3 :(得分:-1)

()之后您遗失new Random