Ну, первое, что нужно сделать , это пометить метод так, чтобы он возвращал строку.
И, учитывая, что вы создаете случайное значение от 1 до 6 включительно, я Я не уверен, что код, который работает, когда он меньше половины, или пяти восьмых, или трех четвертей, очень полезен :-) Вы, вероятно, должны избавиться от этого.
Наконец, вы лучше не создавайте объект randInt
в конструкторе где-либо, а не создавайте новый экземпляр каждый раз, когда вы вызываете функцию.
Кроме этих трех вещей, все, что у вас должно быть хорошо, с небольшой очисткой кода а также:
import java.util.Random;
public class HelloWorld {
Random randInt;
public HelloWorld() {
randInt = new Random();
}
public String roll ()
{
int faceDie = randInt.nextInt(6) + 1;
if (faceDie <= 3) return "D";
if (faceDie == 4) return "L";
if (faceDie == 5) return "C";
return "R";
}
public static void main(String []args) {
HelloWorld hw = new HelloWorld();
System.out.println(hw.roll());
}
}
Конечно, вы можете упростить его значительно , просто используя значения 0
thru 5
и индексировав в строку значений, которые вы хотеть. Я бы не использовал это, если бы был лот вариантов выбора, но с шестью должно быть все в порядке, и тогда код roll()
становится (со всем остальным, оставаясь прежним):
public String roll() {
int index = randInt.nextInt(6);
return "DDDLCR".substring(index, index + 1);
}