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
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...