@xaiponews

Какую команду использовать для перезапуска метода Random после проверки?

Есть код генерирующий два рандомных числа, результат посылается в две разные ячейки. Я сделал так чтобы полученный результат проверялся на совпадение, но у меня не получается перезапустить получение рандомного числа в одной из ячеек если результат совпадает. То что я пробивал:- if (ds.equals(ds2)){
dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2())); не работает. Хотя проверка работает хорошо, если прописать действие recreate(); -то при совпадении, activity перезагрузится. Я взял три числа, так как большой шанс получить совпадение, это для проверки кода.
dopolnitelnyvyvod.setText(String.valueOf(getRandomNumber2()));
                dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
                ds = dopolnitelnyvyvod.getText().toString();
                ds2 = dopolnitelnyvyvod2.getText().toString();
                if (ds.equals(ds2)){
                    dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
                }
 private ArrayList<Integer> getRandomNumber2() {
        ArrayList<Integer> mfoo2foo = new ArrayList<>();
            double random = Math.floor(Math.random() * 300);
            if (random < 100) {
                mfoo2foo.add(1);
            } else if (random < 200) {
                mfoo2foo.add(2);
            } else if (random <300) {
                mfoo2foo.add(3);
            }
        return mfoo2foo;
    }
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@xaiponews Автор вопроса
Решение найдено, меняем if на while, добавляем строки передачи результата, чтобы процесс не зациклился
dopolnitelnyvyvod.setText(String.valueOf(getRandomNumber2()));
                dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
                ds = dopolnitelnyvyvod.getText().toString();
                ds2 = dopolnitelnyvyvod2.getText().toString();
                while (ds.equals(ds2)){
                    dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
 ds = dopolnitelnyvyvod.getText().toString();
                ds2 = dopolnitelnyvyvod2.getText().toString();
                }
 private ArrayList<Integer> getRandomNumber2() {
        ArrayList<Integer> mfoo2foo = new ArrayList<>();
            double random = Math.floor(Math.random() * 300);
            if (random < 100) {
                mfoo2foo.add(1);
            } else if (random < 200) {
                mfoo2foo.add(2);
            } else if (random <300) {
                mfoo2foo.add(3);
            }
        return mfoo2foo;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы