Java ArrayList循环问题
我正在eclipse上用java编写一个垄断式的游戏。 我目前正在研究一种方法,允许玩家在自己的方块中循环,并选择要开发的方块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
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