2012-01-16 109 views

回答

85

java.util.Random已經有這個功能:

public boolean getRandomBoolean() { 
    Random random = new Random(); 
    return random.nextBoolean(); 
} 

然而,這不是有效的每次需要一個隨機的布爾的時光總是創建一個新的Random實例。取而代之的是,創建一個需要隨機布爾在類Random類型的屬性,然後使用該實例的每一個新的隨機布爾:

public class YourClass { 

    /* Oher stuff here */ 

    private Random random; 

    public YourClass() { 
     // ... 
     random = new Random(); 
    } 

    public boolean getRandomBoolean() { 
     return random.nextBoolean(); 
    } 

    /* More stuff here */ 

} 
46

(Math.random() < 0.5)返回TRUE或FALSE隨機

12

這應該這樣做:

public boolean randomBoolean(){ 
    return Math.random() < 0.5; 
} 
+0

這項工作最適合我 – 2017-03-31 19:27:20

5

你可以做以下代碼,

public class RandomBoolean { 
    Random random = new Random(); 
    public boolean getBoolean() { 
     return random.nextBoolean(); 
    } 
    public static void main(String[] args) { 
     RandomBoolean randomBoolean = new RandomBoolean(); 
     for (int i = 0; i < 10; i++) { 
      System.out.println(randomBoolean.getBoolean()); 
     } 
    } 
} 

希望這會幫助你,謝謝。

+1

這是有點多餘。 'randomBoolean'可能只是'new Random()',而不是'getBoolean()'具有'nextBoolean()'。上面的代碼只是添加了無意義的類封裝。 – whitfin 2015-04-26 19:03:32

2

您將通過此獲得它:

return Math.random() < 0.5; 
+6

儘可能嘗試只添加添加信息的答案。這個答案與MichaelBorgwardt的回答幾乎相同 – 2013-09-03 13:46:59

-1

最矮的方式:

public boolean getRandomBoolean() { 
    return new Random.nextBoolean(); 
} 
+0

返回新的Random()。nextBoolean(); – Simo 2018-02-07 11:31:25