Задать вопрос
@Mikhail_123

Не работает рекурсия в простом методе, как исправить?

Задача вроде проста, сделать пример вычитания одного рандомного числа до ста включительно, с другим рандомным числом, и вывести на экран, второе число должно быть меньше первого, чтобы не получилось отрицательного ответа, вот как я сделал, всё внимание на метод minus , который принимает первое число, и выдаёт рандомное второе, проверяет на соответствие требованию, если не соответствует то метод вызывает сам себя, генерируя новое второе число, и до "return 123;" в принципе не должно доходить, но на практике доходит в половине случаев, значит моя рекурсия не работает. Что я не так сделал?

public class Numbers extends AppCompatActivity {
	TextView textView3;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_numbers);
	textView3 = findViewById(R.id.textView3);
	
	int randomDo100 = randomDo100metod();
	String randomDo100String = String.valueOf(randomDo100);
	
	int minus = minus(randomDo100);
	String minusString = String.valueOf(minus);
	
	String textView3String = String.format("%s - %s", randomDo100String, minusString  );
	textView3.setText(textView3String);
	
}
public void onClickTextView(View view) {
}

private int minus(int i) {
	int minusNumber = (int) (Math.random() * 100);
	if (minusNumber<i) {
		return minusNumber;
	} else {
	minus(i);
	}
	return 123;
}


private int randomDo100metod (){
	int randomDo100metod = (int) (Math.random()*100);
	return randomDo100metod;
}
}
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы