2015-10-25 3 views
0

У меня проблема со случайным истинным или ложным. Каждый раз это зависит только от кода. Есть ли у кого-нибудь решение сделать это на самом деле случайным?Почему это всегда так?

int times; 

for (left = 0; left < times; left++) { 
     boolean result = (Math.random() < 0.5); 
     if(result = true){ 
      System.out.println("Heads"); 
     } 
     else if(result = false){ 
      System.out.println("Tails"); 
     } 
     System.out.println(result); 

    } 
+1

Вам нужно использовать, если (результат '== истинный) 'или просто' if (result) 'вместо этого. 'if (result = true)' делает 'result' true. –

+0

Вы должны выполнить сравнение с помощью оператора. то есть 'result == true' –

+0

Оба ваших метода работали! Спасибо – INeedHelp

ответ

2
if(result = true) 

не делать то, что вы думаете, что он делает. Фактически присваиваетtrue до result, а затем использует это как условие для оператора if. Следовательно, условие будет всегда быть правдой.

Использование == вместо или, так как это уже логическое значение, просто использовать (соответственно переименовав переменную с пути слишком общий result):

boolean FiftyPercentChance = (Math.random() < 0.5); 
if (FiftyPercentChance) ... 
Смежные вопросы