java - switch 中的所有情况都会执行,而只有一种情况应该被执行

标签 java arrays switch-statement

我正在尝试创建一个非常简单的游戏,其中几个不同类型的玩家尝试猜测一个范围内的数字。我创建了一个函数来初始化玩家数组,并使用 switch-case 来完成它。

由于某种原因,如果我输入一个数字,即使数组中没有足够的单元格,它也会遍历它后面的所有情况。例如,当输入 2(HUMAN 类型的值)时,它也会执行 3 和 4 的情况,并创建 COMPUTER 和 GUMBLER 类型的玩家。

这是代码:

    String name;
    int count = 0;
    System.out.println("How many players will participate?");
    players = new Player[reader.nextByte()];
    for (Player player: players)
    {    
        count++;
        System.out.print("\n1)Name of the player: ");
        name = reader.next();
        System.out.println("What will be its type? WRITE A NUMBER\n1- Monley\n2-Human\n3-Gumbler\n4-Computer");
        switch (reader.nextInt())
        {
            case 1:
                player = new Monkey (name, MAXIMUM, MINIMUM);
                System.out.println("A moneky was created");
            case 2:
                player = new Human (name);
                System.out.println("A human was created");
            case 3:
                player = new Gumbler (name, MAXIMUM, MINIMUM);
                System.out.println("A gummbler was created");
            case 4:
                player = new Computer (name, MAXIMUM, MINIMUM);
                System.out.println("A computer was created");
        }
    }

MAXIMUMMINIMUM是需要猜测的数字的最小和最大数字。 Human , Monkey , ComputerGumbler是扩展抽象类的类 Playerplayers是玩家数组(类型为 Player )。

最佳答案

break 结束每个 case block 。

关于java - switch 中的所有情况都会执行,而只有一种情况应该被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678085/

相关文章:

ios - .rangeOfString() 在 Swift 中带有开关

coding-style - Switch 语句失败...应该允许吗?

java - Tomcat容器是如何调用service()方法的?

C++ 返回指向二维字符数组的指针

java - 如何比较字符串数组并计算相似单词

javascript - react className 未在 switch 语句中定义

java - 如何使用 Jersey WS 从服务器中的文件夹获取图像?

java - Spring Batch + HSQLDB 错误 - 用户没有权限

java 如何动态初始化Annotation

c - 检查升序数组中有多少个系列的函数的算法是什么。并检测c中最长的系列