Java中使用goto语句的表达式的非法开始

问题描述

我正在尝试使用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
    }
}