2016-11-20 2 views
-2

У меня есть программа, в которой 4 случайных числа установлены на 4 кнопки (по одному для каждой кнопки). Существуют две случайные величины (rbvalue и loadG4). Число rbval различно для каждой кнопки, но значение 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) для случайного значения rb? Что это значит -1 в этой ситуации?

Буду признателен всем, кто мог бы прояснить это для меня, спасибо.

ответ

0

Вы можете принять 10 - 1 в качестве начальной математики школы, она равна 9, поэтому randoms1.nextInt(10 - 1) возвращает число от 0 до 8 включительно. Я не знаю, почему он не написан как 9. Это может быть попытка подчеркнуть, что значение 1 меньше, чем 10, используемое в GenerateG4.nextInt(10).

Когда выполняется только одно утверждение, когда условие if истинно, фигурные скобки - это вопрос мнения. Очень многие предпочитают их там; на моем рабочем месте никто не уходит, оставляя их.

Операции ifrbvalue до 9, если они были равны loadG4. Это гарантирует, что значения будут отличаться. Поскольку rbvalue было не более 8, мы знаем, что, когда они равны, установка одного из них на 9 гарантирует, что они станут разными. Это немного тонко на мой вкус, я понимаю, что вам нужно было спросить.

Код не работает, чтобы сделать цифры rbvalue различными для каждой кнопки.

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