2012-01-16 3 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) возвращает истину или ложь случайно

12

Это должно сделать:

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

эту работу лучше для меня –

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

2

вы получите его в этом:

return Math.random() < 0.5; 
+6

Где можно попытаться только добавить ответы, которые добавляют информацию. Этот ответ почти идентичен ответу МайклаБоргвардта –

-1

Самый короткий путь:

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

return new Random(). NextBoolean(); – Simo

Смежные вопросы