为什么我的Java程序不生成固定数量的随机数?

为什么我的Java程序不生成固定数量的随机数?,java,Java,我对Java非常陌生,大多数时候我不知道自己在做什么。我想做一个代码,你可以选择要生成多少个数字,一个随机数的最大值和最小值 它不断生成最大和最小范围内的数字 import java.util.Scanner; 导入java.util.Random; 公共类随机_未完成{ 公共静态void main(字符串[]args){ 整数,最大值,最小值,生成值,平均值,i; 扫描仪扫描=新扫描仪(System.in); 随机=新随机(); System.out.println(“您希望生成多少个数字?

我对Java非常陌生,大多数时候我不知道自己在做什么。我想做一个代码,你可以选择要生成多少个数字,一个随机数的最大值和最小值

它不断生成最大和最小范围内的数字

import java.util.Scanner;
导入java.util.Random;
公共类随机_未完成{
公共静态void main(字符串[]args){
整数,最大值,最小值,生成值,平均值,i;
扫描仪扫描=新扫描仪(System.in);
随机=新随机();
System.out.println(“您希望生成多少个数字?”);
numofen=scan.nextInt();
System.out.println(“最大数量是多少?”);
max=scan.nextInt()+1;
System.out.println(“最小数量是多少?”);
min=scan.nextInt();

for(int value=min;value问题是for循环从
min
max
。此外,它缺少一个update子句,这意味着
value
永远不会更改。因此,您被困在一个无限循环中

相反,您应该从
0
转到
numofgen
,并确保每次将
i
更新1。这将生成用户所需的任意数量的数字

import java.util.Scanner;
import java.util.Random;
public class random_unfinished {
  public static void main(String[] args) {
    int numofgen, max, min, generated, avg, i;
    Scanner scan = new Scanner(System.in);
    Random random = new Random();
    System.out.println("How many numbers would you like to     generate?");
    numofgen = scan.nextInt();
    System.out.println("What is the maximum number?");
    max = scan.nextInt() + 1;
    System.out.println("What is the minimum number?");
    min = scan.nextInt();
    for (int i = 0; i < numofgen; i++) {
      value = random.nextInt(max - min) + min;
      System.out.println("numbers are " + value);
    }
  }
}
import java.util.Scanner;
导入java.util.Random;
公共类随机_未完成{
公共静态void main(字符串[]args){
整数,最大值,最小值,生成值,平均值,i;
扫描仪扫描=新扫描仪(System.in);
随机=新随机();
System.out.println(“您希望生成多少个数字?”);
numofen=scan.nextInt();
System.out.println(“最大数量是多少?”);
max=scan.nextInt()+1;
System.out.println(“最小数量是多少?”);
min=scan.nextInt();
对于(int i=0;i
好的,因此for循环有问题

习惯这一点:

for (int i = 0; i < n; i++) {
for(int i=0;i
如果你的for循环看起来不是这样的,除非你很先进,否则你可能是做错了

以您的情况为例:

    for (int value = min; value <= max;) {

for(int-value=min;value-Yes?您遇到了什么问题?java!==javascript与痛苦相关painting@JaromandaX根据我的经验,绘画比javascript更痛苦@MarkMeyer@Yua-Shimura-将它们添加到什么中?添加到彼此中(例如,在末尾添加一个总数?)如果是这样的话,那么在循环外部创建一个变量(例如“int total=0;”),然后每次在循环体中执行类似的操作:“total+=value;”实际上,您的响应是错误的。在for声明中增加value的值不是强制性的。他已经在这里更新值:value=random.nextInt(max-min)+min;但是,由于他总是覆盖,可能需要很长时间,直到值变得如此之高,以至于跳出循环。@Stultuske肯定它永远不会跳出循环,因为
rand(max-min)+min
。然而,您绝对正确地说,
for update
不是必需的-
for(;;;;
是有效的(如果无用)对于循环。@Stultuske的观点很好。如果他要在循环体中旋转值,那么增加值是多余的,但是如果是这样的话,那么他绝对不应该使用它作为循环计数器,这就是我试图巧妙地引导他创建一个单独的计数器的原因-按照常见的习惯用法。@Rick如果应该是一个固定值(例如,每次迭代+1),那么是的,但是如果它是一个可变值覆盖/扩充,那么并不总是这样,您认为第二行:for(int value=min;value @ StultuSKE足够公平,我没有考虑过!它无疑是问题的一部分,因为他不增加,而是覆盖了值(可能更低),但是它应该能够(最终)脱离循环。
for (int i = 0; i < n; i++) {
    for (int value = min; value <= max; [_____you forgot this bit____] ) {