用于android的随机布尔生成器

时间:2014-06-28 13:09:29

标签: android boolean

我试图在Android中创建一个案例A或案例B的随机(50/50)机会,我需要它尽可能简单和资源效率。我查看了stackoverflow,但我找到的随机布尔值是在C ++中吗?

如果有人可以给我一个关于如何做到这一点的建议,无论是使用布尔值还是使用字符串/整数(因为我被告知布尔值是原始的),我将不胜感激。

我尝试了以下

          public static boolean getRandomBoolean() {
          return Math.random() < 0.5; } 



        boolean atrg = getRandomBoolean();  
          if (atrg = true) 
              { Toast.makeText(cxt, "TRUE", Toast.LENGTH_SHORT).show(); }
          else if (atrg = false) 
              { Toast.makeText(cxt, "FALSE", Toast.LENGTH_SHORT).show(); }

但几乎在所有情况下,我测试过(&gt; 20x),它是真的吗?这可能是一个愚蠢的问题,但getRandomBoolean是一个布尔值还是一个int / double?对不起,我对android很新,你可能已经猜到了。

3 个答案:

答案 0 :(得分:3)

您的随机生成器很好,但显示结果的吐司不是。

问题出在if语句中,您使用单个等号(=)这是一个赋值。这项任务的结果将是真实的,因此它永远不会显示“FALSE”吐司。

试试这个。

boolean atrg = getRandomBoolean();  
if (atrg) {
    Toast.makeText(cxt, "TRUE", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(cxt, "FALSE", Toast.LENGTH_SHORT).show();
}

答案 1 :(得分:1)

这不是您检查boolean的方法。 =是赋值运算符,==用于比较。你应该检查:

if(atrg == true)  

或者在布尔值的情况下,它只是:

if(atrg)  

您的陈述:

if(atrg = true)  

atrg分配给true,您永远不会收到false个案件。

答案 2 :(得分:-1)

只需使用Math.random(),它将返回0到1之间的值。示例如下:

public static boolean getRandomBoolean() {
       return Math.random() < 0.5;
   }

public static void main(String[] args) {
       System.out.println(getRandomBoolean());  
   }
相关问题