问题描述
我正在尝试使用goto语句重新开始玩家的回合,但是 不起作用。
if(spaceCheck(arr))
{
crack:
System.out.println("Player "+player+"'s Turn:");
System.out.print("Row : ");
row=s.nextInt();
System.out.print("Column : ");
column=s.nextInt();
if(indexValidate(arr,row,column))
{
arr[row][column]=player;
}
else
{
goto crack;
}
解决方法
goto
不是Java的一部分。也许您在想另一种语言。
正如blurfus指出的那样,即使在支持goto
的语言中,也不应使用它。这不是一个好的编程,因为它会鼓励缺乏结构和“意大利面条式代码”。
使用循环代替:
while (true) {
System.out.println("Player "+player+"'s Turn:");
System.out.print("Row : ");
row=s.nextInt();
System.out.print("Column : ");
column=s.nextInt();
if(indexValidate(arr,row,column)) {
arr[row][column]=player;
break; // terminate while loop
}
}