Java ArrayList循环问题

Java ArrayList循环问题,java,loops,for-loop,arraylist,Java,Loops,For Loop,Arraylist,我正在eclipse上用java编写一个垄断式的游戏。 我目前正在研究一种方法,允许玩家在自己的方块中循环,并选择要开发的方块 for (int loop2 = 0; loop2 < currentPlayer.getOwnedSquares().size(); loop2++) { count++; System.out.println("Would you like to develop this property " + count + ". " + c

我正在eclipse上用java编写一个垄断式的游戏。 我目前正在研究一种方法,允许玩家在自己的方块中循环,并选择要开发的方块

for (int loop2 = 0; loop2 < currentPlayer.getOwnedSquares().size(); loop2++) {

    count++;

    System.out.println("Would you like to develop this property " + count + ". " 
    + currentPlayer.getOwnedSquares().get(loop2).getName() + " (y/n)");

    propertyChoice = scanner.nextLine();

    if (propertyChoice.equalsIgnoreCase("Y")) {
            break;
        }else if (propertyChoice.equalsIgnoreCase("N")) {

            continue;
        }
    }
System.out.println("Please choose a development option");
System.out.println("1.Buy a start-up");
System.out.println("2.Buy a global corporation");
int option = scanner.nextInt();
我无法让循环一次只显示一个拥有的方块,因此玩家可以选择y/n来开发哪个方块。如果玩家选择N,循环将显示数组中下一个拥有的属性,玩家将做出另一个决定,依此类推。。 如果玩家选择Y,则循环将中断,并在所选自有方块的开发选项上移动


任何关于如何实现这一点的建议都将不胜感激。

您必须将用户输入检查移出循环,因此算法如下所示:

在循环中打印所有拥有的方块。 询问循环外部的用户他想要开发哪个方块。例如,用户可以简单地提供一个正方形的位置编号,您可以通过该编号获得

currentPlayer.getOwnedSquares().get(Integer.valueOf(userInput)); 
使用选定的正方形执行任何需要的操作。 尝试放置scanner.nextLine;在propertyChoice=scanner.nextLine之前的中间位置


编辑:如果这不起作用,请注意,else在第二个if块周围没有括号。我不知道这是否有效,因为我看不到您所引用的类,也不能说有错误。您显示的代码似乎没有任何其他问题。

我只是修改了代码以进行测试,它可以按照您的需要工作。我认为还有一些问题你没有分享

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        int count=0;
        String propertyChoice;
        Scanner scanner = new Scanner(System.in);
        for (int loop2 = 0; loop2 < 5; loop2++) {

            count++;

            System.out.println("Would you like to develop this property " + count
                     + " (y/n)");

            propertyChoice = scanner.nextLine();

            if (propertyChoice.equalsIgnoreCase("Y")) {
                break;
            }else if (propertyChoice.equalsIgnoreCase("N")) {

                continue;
            }
        }
        System.out.println("Please choose a development option");
        System.out.println("1.Buy a start-up");
        System.out.println("2.Buy a global corporation");
    }
}

现在发生了什么?你到底遇到了什么问题?对我来说这似乎是一个很好的起点。它一次显示所有拥有的属性,而不是一次显示一个,因此玩家无法循环选择。我希望它在loop2显示第一个OwendProperty,然后根据y/n选择下一个。目前它一次打印出所有的代码,我真的不明白为什么代码看起来很好!似乎无法理解你为什么要面对这个问题。不知道还有其他的if吗?我总是用括号括住if,所以不。如果是这样的话,你可能也想看看else if。非常感谢您的帮助,我将进一步研究这个问题,并尝试找出代码中其他什么可能导致问题
Would you like to develop this property 1 (y/n)
n
Would you like to develop this property 2 (y/n)
n
Would you like to develop this property 3 (y/n)
y
Please choose a development option
1.Buy a start-up
2.Buy a global corporation

Process finished with exit code 0