如何在java中使用while循环生成随机数?

如何在java中使用while循环生成随机数?,java,Java,我需要生成从1到20的随机数,计算它们的和,直到超过100 Random rand = new Random(); int num = rand.nextInt(20)+1; System.out.println("Random number " + num); int sum = num; System.out.println("Current sum " + sum); num = rand.nextInt(20)+1; sum = num

我需要生成从1到20的随机数,计算它们的和,直到超过100

Random rand = new Random();
 int num = rand.nextInt(20)+1;
 System.out.println("Random number " + num);
 int sum = num;
 System.out.println("Current sum " + sum);
 num = rand.nextInt(20)+1;
 sum = num + num;
 System.out.println("Random number " + num); 
 System.out.println("Current sum " + sum);
 while (sum > 100)
 { 
     System.out.println("The sum " + sum + " exceeds 100"); 
 }

this is what i have so far

您需要将生成和求和放入循环中。不能使用同一变量(
num
)来保存两个值。您将总和设为等于两个num,而不是实际跟踪num的总和

您需要将终止语句置于循环之外。并在循环外初始化您的总和

Random rand = new Random();
int sum = 0; //initialise your sum

while (sum < 100) // this equality was the wrong way around
 { 
    int num = rand.nextInt(20)+1;
    System.out.println("Random number " + num);

    sum += num; //add your random num to the sum
                //  don't just make it equal to two nums.
    System.out.println("Current sum " + sum);
 }
 System.out.println("The sum " + sum + " exceeds 100"); 
Random rand=new Random();
整数和=0//初始化你的总数
然而(总和<100)//这个等式是错误的
{ 
int num=rand.nextInt(20)+1;
System.out.println(“随机数”+num);
sum+=num;//将随机num添加到sum中
//不要让它等于两个nums。
系统输出打印项次(“当前总和”+总和);
}
System.out.println(“总和”+总和+“超过100”);

这里有一个非常有趣的方法

  • 生成一个介于1和20之间(含1和20)的
    整数流
  • 变成迭代器
  • 继续求和,直到总和>100
Random rand=new Random();
整数和=0;
for(Iterator it=rand.ints(1,21).Iterator();
sum<100&&it.hasNext();){
sum+=it.next();
}
或者更好,因为它可以避免拆箱

int sum = 0;
while ((sum += rand.nextInt(20)+1) < 100);
System.out.println(sum);
int和=0;
而((总和+=rand.nextInt(20)+1)<100);
系统输出打印项数(总和);
int sum = 0;
while ((sum += rand.nextInt(20)+1) < 100);
System.out.println(sum);