2016-11-20 117 views
-2

我有4个随机数设置为4个按钮(每个按钮一个)的程序。有两个随机变量(rbvalue和loadG4)。每个按钮的rbvalue号码都不相同,但loadG4值会覆盖按钮的值并将其替换。这个想法是,没有一个rbvalue数字意味着等于loadG4,并且程序的一部分确保它们永远不会相等。下面的代码:这段代码是如何工作的? (Java)

Random GenerateG4 = new Random(); 
      int loadG4 = GenerateG4.nextInt(10); 
      Random randoms1 = new Random(); 
      final TextView number = (TextView) findViewById(R.id.number); 
      number.setText(""+loadG4); 
      for(int allrbA=0; allrbA<4; allrbA++) { 
       int rbvalue = randoms1.nextInt(10 - 1); 
       if (rbvalue==loadG4) rbvalue=9; 
       selectrb[allrbA].setText(""+rbvalue); 
      } 
      selectrb[rbselector].setText(""+loadG4); 

,使这项工作的一部分:

if (rbvalue==loadG4) rbvalue=9; 

简单地添加一行代码在做的工作。现在,在从0到9生成的所有数字中,只有一个是loadG4的值。这条线是如何做到的?我一直认为在if (...)之后,实际语句必须有大括号,例如if(...){System.out.println(“...”)}为什么设置rbvalue为9?为什么有(10 -1)为随机rbvalue?在这种情况下,这意味着什么呢?

我会很感激任何人可以为我解决这个问题,谢谢。

回答

0

你可以把10 - 1作为小学数学,它等于9,所以randoms1.nextInt(10 - 1)返回一个从0到8的数字。我不知道为什么它不写为9。可能会试图强调该值比GenerateG4.nextInt(10)中使用的10小1。

if条件成立时,只有一条语句被执行时,大括号是意见问题。很多人都喜欢让他们在那里;在我的工作环境中,没有人会把他们抛出去。

if语句将rbvalue设置为9,如果它等于loadG4。这将确保数值不同。由于rbvalue最多只有8个,我们知道当它们相等时,将它们中的一个设置为9将确保它们变得不同。我的口味有点微妙,我知道你需要问。

该代码似乎没有做任何事情来使每个按钮的rbvalue数字不同。