java - Switch语句: Random generator

标签 java random switch-statement

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

最佳答案

您不必为此使用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;
}

关于java - Switch语句: Random generator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35101425/

相关文章:

java - 如何为 beaneditform 上的密码字段制作正则表达式?

java - 解析 JSON 对象中的 JSON 对象

c# - 如何在 C# 中生成可证明公平的掷骰子?

java - 将不重复的数字存储在数组中

switch-statement - 可选 bool 值元组上的 Swift switch 语句

java - 在 switch 语句中,为什么所有的 case 都被执行?

java - 我可以查看实现的 javadoc 而不是 IntelliJ IDEA 中的接口(interface)吗?

java - 代码中的AWS Lambda触发器; java

java - 在java中只返回奇数(int)的方法

c++ - 在C++中在切换情况下使用和不使用 'break'时的不同输出