Java中的For循环第二次暂停

Java中的For循环第二次暂停,java,loops,for-loop,Java,Loops,For Loop,我正在尝试编写一些代码,以跟踪赢/输比率。我有一个for循环,它检查一个名称是否存在于一个单独的变量中,这是可行的,但当我再次尝试时,它会暂停 System.out.println("\nEnter Name 1"); scan.nextLine(); String name1 = scan.nextLine(); for (int i = 0; i < numPlayers; i++) { if (name1.equals(players[i].name)) {

我正在尝试编写一些代码,以跟踪赢/输比率。我有一个for循环,它检查一个名称是否存在于一个单独的变量中,这是可行的,但当我再次尝试时,它会暂停

System.out.println("\nEnter Name 1");
scan.nextLine();
String name1 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
    if (name1.equals(players[i].name)) {
        players[i].win++;
        break;
    }
}
System.out.println("\nEnter Name 2");
scan.nextLine();
String name2 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
    if (name2.equals(players[i].name)) {
        players[i].loss++;
        break;
    }
}
System.out.println(“\n输入名称1”);
scan.nextLine();
字符串名称1=scan.nextLine();
for(int i=0;i
代码完成后,它应该返回while循环,但它只是暂停。如果我注释掉名称2部分,代码可以工作,但我需要这两部分

编辑1: 这是全部密码

public class Counter {

    @SuppressWarnings("resource")
    public static void main(String[] args) {

        int intTemp;
        String stringTemp;

        int keepGoing = 1;
        int numPlayers = 0;
        Player[] players = new Player[999];

        Scanner scan = new Scanner(System.in);
        System.out.println("Melee Score Tracker");

        while (keepGoing == 1) {
            System.out.println("\nPrint Scores\t1\nNew Match\t2\nNew Player\t3\nExit\t\t4");
            intTemp = scan.nextInt();

            // Print Scores
            if (intTemp == 1) {

                intTemp = 0;
                System.out.print("\n");
                for (int i = 0; i < numPlayers; i++) {
                    players[i].print();
                }

            }

            // New Match
            if (intTemp == 2) {

                intTemp = 0;
                System.out.println("\nEnter Name 1");
                scan.nextLine();
                String name1 = scan.nextLine();
                for (int i = 0; i < numPlayers; i++) {
                    if (name1.equals(players[i].name)) {
                        players[i].win++;
                        break;
                    }
                }
                System.out.println("\nEnter Name 2");
                scan.nextLine();
                String name2 = scan.nextLine();
                for (int i = 0; i < numPlayers; i++) {
                    if (name2.equals(players[i].name)) {
                        players[i].loss++;
                        break;
                    }
                }
            }

            // New Player
            if (intTemp == 3) {

                intTemp = 0;
                System.out.println("\nWhat's the player's name?");
                scan.nextLine();
                stringTemp = scan.nextLine();
                players[numPlayers] = new Player();
                players[numPlayers].name = stringTemp;
                numPlayers++;
                System.out.println(numPlayers);

            }

            // Exit
            if (intTemp == 4) {

                System.exit(0);

            }
        }

    }
}
公共类计数器{
@抑制警告(“资源”)
公共静态void main(字符串[]args){
int intTemp;
字符串字符串温度;
int keepGoing=1;
int numPlayers=0;
玩家[]玩家=新玩家[999];
扫描仪扫描=新扫描仪(System.in);
System.out.println(“近战分数跟踪器”);
while(keepGoing==1){
System.out.println(“\n打印分数\t1\n新匹配\t2\n新玩家\t3\nExit\t\t4”);
intTemp=scan.nextInt();
//打印分数
如果(intTemp==1){
intTemp=0;
系统输出打印(“\n”);
for(int i=0;i
它因此暂停

scan.nextLine();
scan.nextLine();
String name2 = scan.nextLine();
它正在等待输入3次。您只需要输入一次,因此将其替换为

String name2 = scan.nextLine();
在将来,通过在循环中打印一条小消息来检查代码是否真的进入for循环,这样的事情可以很容易地进行调试

String name2 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
    System.out.println("We have entered the loop.");
    if (name2.equals(players[i].name)) {
        players[i].loss++;
        break;
    }
}
String name2=scan.nextLine();
for(int i=0;i

如果您在控制台中看到输出,那么您知道问题不在于循环本身,而在于它之前。

我甚至没有看到while循环。您可以发布while循环,它可能会暂停,因为它正在内网运行。它是否在
scan.nextLine()处暂停(在
字符串名称2=scan.nextLine();
之前)??寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建。您确定它进入for并且在等待“下一行”时不会停止吗?谢谢,这已成功。我这样做是因为我之前没有这样做,它会跳转到代码的下一部分。