从用户输入数组创建随机输出

时间:2016-11-14 09:05:42

标签: java arrays random count

public class decisionMaker {
    public static void main(String args[]) {
        String option[] = new String[10];
        // Output

        for (int i = 0; i <= 9; i++) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the next option:");
            option[i] = input.next();
            System.out.println(" ");
        }

        for (int i = 0; i <= 9; i++) {
            System.out.println("option:   ");
            System.out.println("option[i]+"             ");
        }
    // Output
}

我试图找出如何在选项中添加计数,在输入特定字母或数字后退出和结束程序,以及如何从用户输入创建随机输出。我想让它给我一个随机输入的选项。任何人都可以帮助我解决这些问题中的一个或几个。我试图学习自己编码,而且我坚持这些。

2 个答案:

答案 0 :(得分:1)

随机性

您可以使用java.util.Random;生成随机数:

import java.util.Random;

public class SomeClass{
    static Random rand = new Random();

    public static void main(String args[]){
        System.out.println(rand.nextInt());
    }
}

关于一些破碎的代码:

如果要使用System.out.println()打印变量的,则只需键入变量而不带任何引号。您在下面编写的代码将无法编译:

System.out.println("option:   ");
System.out.println("option[i]+"             ");

假设这是你想要做的,它应该写成:

System.out.println("option: ");
System.out.println(option[i]);

甚至是System.out.println("option: \n"+option[i]);

(转义序列\n放在引号内时只是向控制台指示添加新行。)

扫描仪:

此外,正如nick zoum指出的那样,Scanner对象应该在for循环的初始化,例如main()方法的正下方

如果您需要澄清或者我误解了您的要求,请在下面发表评论。很难理解你的问题。

答案 1 :(得分:0)

您可以尝试这样的事情:

public class DecisionMaker {
    public static void main(String[] args) {
        // output
        Scanner scanner = new Scanner(System.in);
        int size = getInt(scanner);
        String option[] = new String[size];
        for (int index = 0; index < size; index++) {
            System.out.print("Enter the next option:");
            option[index] = scanner.next();
        }
        int index = (int) (Math.random() * size);
        System.out.println(option[index]);
        scanner.close();
        // output
    }

    public static int getInt(Scanner scanner) {
        int size = 0;
        while (size <= 0) {
            if (scanner.hasNext()) {
                if (scanner.hasNextInt()) {
                    size = scanner.nextInt();
                }
            }
            if (size <= 0) {
                System.out.println("The input: " + scanner.next() + " is not a valid value.");
            }
        }
        return size;
    }
}

该计划如何运作:

  • Scanner在开头初始化,只有。{1}} 一个例子。

  • 然后程序将等到用户为其插入有效数字 选项的大小。

  • 接下来的5行基本上是从你的代码中复制过来的。

  • 最后,我们得到Integer范围内的随机0 - (size - 1)并打印 带有该索引的数组的字符串。