Java switch中的所有情况都会执行,而只应执行一个

Java switch中的所有情况都会执行,而只应执行一个,java,arrays,switch-statement,Java,Arrays,Switch Statement,我正在尝试创建一个非常简单的游戏,在这个游戏中,不同类型的玩家尝试猜测一个范围内的数字。我创建了一个函数来初始化一个播放器数组,并使用switch case来实现 出于某种原因,如果我输入一个数字,它将遍历其后的所有案例,即使数组中没有足够的单元格。例如,当输入2时,类型HUMAN的值,它也输入了类型3和类型4的案例,并且创建了类型COMPUTER和GUMBLER的玩家 代码如下: String name; int count = 0; System.out.printl

我正在尝试创建一个非常简单的游戏,在这个游戏中,不同类型的玩家尝试猜测一个范围内的数字。我创建了一个函数来初始化一个播放器数组,并使用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");
        }
    }

最大值和最小值是需要猜测的数字的最小值和最大值。人类、猴子、计算机和口香糖是absract类播放器的扩展类。players是Player类型的玩家数组。

用break结束每个案例块。

在每个案例中都需要break语句。看


我建议您阅读Oracle网站上的Java教程。下面是一个例子,解决这类问题的最佳方法是将is标记为replicate。
    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");
                break; 
            case 2:
                player = new Human (name);
                System.out.println("A human was created");
                break;
            case 3:
                player = new Gumbler (name, MAXIMUM, MINIMUM);
                System.out.println("A gummbler was created");
                break;
            case 4:
                player = new Computer (name, MAXIMUM, MINIMUM);
                System.out.println("A computer was created");
        }
    }