Switch语句:随机生成器

时间:2016-01-30 11:51:20

标签: java random switch-statement

我想用switch-case语句进行测验。在输入之前,我生成一个介于1和10之间的随机数。然后有10个案例,每个数字一个。在每一个中都有一个问题,意思是程序在开头显示一个随机问题。当问题得到正确回答时,我希望程序通过生成一个数字而不是已经被选中的数字来再次选择一个随机问题。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您不必为此使用switch。请尝试以下代码。

public void play() {
    range = new ArrayList<>();
    range.addAll(IntStream.rangeClosed(0, questions.size() - 1).boxed().collect(Collectors.toList()));
    //Assuming 'questions' is an array list of questions

    int index = getQnNumber(); // use this to get a valid question index which is not yet asked
    if(index == -1) //means game over
        System.out.println("Completed");
    else
        askQuestion(index);
}

private int getQnNumber() {
    int size = range.size();
    if(size < 1)
        return -1;
    Random r = new Random();
    int index = r.nextInt(size);
    int questionNumber = range.get(index);
    range.remove(index);
    return questionNumber;
}

答案 1 :(得分:0)

您可以维护已生成的数字的ArrayList。在每一个新的随机生成中,

if(!myList.contains(newRandom)){
    return newRandom;
}else{
    //generate a new random and check
}