我有一个enum团队,我想随机.所以我有:
public enum Teams { TEAM1, TEAM2, TEAM3, TEAM4, TEAM5, TEAM6; }
Run Code Online (Sandbox Code Playgroud)
然后我有一个随机方法来随机生成值:
public static Teams getRandomTeam() {
return Teams.values()[(int) (Math.random() * Teams.values().length)];
}
Run Code Online (Sandbox Code Playgroud)
这确实会返回一个随机生成的团队,但是我需要,一旦团队生成,比如说TEAM2,它就不能再生成了.
我正在使用:
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
System.out.println("The team is " + getRandomTeam());
Run Code Online (Sandbox Code Playgroud)
(我知道这是错误的,因为它一遍又一遍地调用这个方法.
在我运行程序的那一刻,输出可能是:
团队是:TEAM2
团队是:TEAM2
团队是:TEAM4
团队是:TEAM2
团队是:TEAM3
团队是:TEAM2
但我需要我的程序只输出一次枚举值.谢谢
当我设置一个对象数组,如:
Player[] player = new Player[amountOfPlayers];
Run Code Online (Sandbox Code Playgroud)
我用:
amountOfPlayers = br.read();
Run Code Online (Sandbox Code Playgroud)
获得变量amountOfPlayers.每当我运行我的程序时,我会在被要求设置时输入3,amountOfPlayers但我的输出显示有51个玩家.
虽然当我将新Player数组设置为:new Player[3]; 有用.
谁知道为什么会这样?