Random.nextBoolean的多个实例给出相同的值;

时间:2016-06-08 01:27:50

标签: java

所以我需要在A1中运行3个硬币实例,并独立模拟硬币翻转,但每次运行它们都会返回相同的值。我不确定问题是什么,所以我只链接我的所有代码。

public class A1main {
public static Coin nickel = new Coin();
public static Coin dime = new Coin();
public static Coin quarter = new Coin();
public static double balance = 0.00;

public static void main(String[]args){
tossall();
checkAndAdd();
System.out.print(balance);
}
public static void tossall(){
    nickel.toss();
    dime.toss();
    quarter.toss();
    System.out.print(nickel.getSideUp()+ dime.getSideUp() + quarter.getSideUp());
}
public static void checkAndAdd(){
    if(nickel.getSideUp().equals("heads")){
        balance += .05;
}
    if(dime.getSideUp().equals("heads")){
        balance += .10;
}
    if(quarter.getSideUp().equals("heads")){
        balance += .25;
}
}
}

package A1;
import java.util.*;

public class Coin {
    public static Random rand = new Random();
    public static String sideUp; //Can this be static?
   public Coin(){
boolean side = rand.nextBoolean(); //used to store/determine side up Heads == true Tails == false.
if(side){
    sideUp = "heads";
}else{
    sideUp = "tails";
}
}
public static void toss(){
    boolean side = rand.nextBoolean(); //used to store/determine side up Heads == true Tails == false.
    if(side){
        sideUp = "heads";
    }else{
        sideUp = "tails";
    }
}
public static String getSideUp(){
    return sideUp;
}
}

0 个答案:

没有答案