Java 范围内的随机数

Java 范围内的随机数,java,for-loop,random,Java,For Loop,Random,这是一个在任何情况下都可以用来生成职位订单的工具 然而,我遇到了无限循环。我怎样才能解决这个问题 import java.util.Random; import java.util.Scanner; public class WhoGoesFirst { public static void main(String args[]) { Random random = new Random(); Scanner input = new Scanner(Sys

这是一个在任何情况下都可以用来生成职位订单的工具

然而,我遇到了无限循环。我怎样才能解决这个问题

import java.util.Random;
import java.util.Scanner;
public class WhoGoesFirst {
    public static void main(String args[]) {
        Random random = new Random();
        Scanner input = new Scanner(System.in);
        int MIN = 1;
        int students = 0;

        System.out.print("How many students do you have?");
        students = input.nextInt();

        int comp = random.nextInt(students - MIN + 1) + MIN;

        for (int number = 0; number <= students; comp++) {
            System.out.println(random);
        }
    }
}
import java.util.Random;
导入java.util.Scanner;
谁先上的公共课{
公共静态void main(字符串参数[]){
随机=新随机();
扫描仪输入=新扫描仪(System.in);
int MIN=1;
int学生=0;
系统输出打印(“你有多少学生?”);
students=input.nextInt();
int comp=random.nextInt(学生-MIN+1)+MIN;

对于(int number=0;number在循环中增加您的number变量,它将解决此问题:

for (int number = 0; number <= students; number++, comp++) {
                System.out.println(comp); //random is an object
        }

对于(int number=0;number您需要增加number:

import java.util.Random;
import java.util.Scanner;
public class WhoGoesFirst {
        public static void main(String args[]) {
        Random random = new Random();
        Scanner input = new Scanner(System.in);
        int MIN = 1;
        int students = 0;

        System.out.print("How many students do you have?");
        students = input.nextInt();

        int comp = random.nextInt(students - MIN + 1) + MIN;

        for (int number = 0; number <= students; number++) {
                System.out.println(random);
                comp++;
        }
    }
}
import java.util.Random;
导入java.util.Scanner;
谁先上的公共课{
公共静态void main(字符串参数[]){
随机=新随机();
扫描仪输入=新扫描仪(System.in);
int MIN=1;
int学生=0;
系统输出打印(“你有多少学生?”);
students=input.nextInt();
int comp=random.nextInt(学生-MIN+1)+MIN;
对于(int number=0;number请看这一行:

System.out.println(random);
此实现尝试打印随机数生成器,而不是数字本身。有一个更简单的解决方案,使用内置的:

List positions=新数组列表(学生);
对于(整数=0;数字<学生;数字++)
位置。添加(编号);
集合。洗牌(位置);
对于(整数:位置)
系统输出打印项次(编号);

您永远不会递增
编号
。为什么不只是递增循环内部的comp和for中的编号(应该是这样的)或者两者都递增…
for(int number=0;number)
List<Integer> positions = new ArrayList<Integer>(students);
for (int number = 0; number < students; number++)
    positions.add(number);

Collections.shuffle(positions);

for (Integer number : positions)
    System.out.println(number);