我可以在一个方法中使用 break 语句,该方法稍后可以从有 while 循环的 main 调用吗?

Can I use break statement in a method which can be later called from main where there is a while loop?

例如,这可以是 checkGameStatus() 方法,在每次移动后检查游戏是否结束。

       if((arr[0][0]=='X' && arr[0][1]=='X' && arr[0][2]=='X')||
       (arr[1][0]=='X' && arr[1][1]=='X' && arr[1][2]=='X')||
       (arr[2][0]=='X' && arr[2][1]=='X' && arr[2][2]=='X')||
       (arr[0][0]=='X' && arr[1][0]=='X' && arr[2][0]=='X')||
       (arr[0][1]=='X' && arr[1][1]=='X' && arr[2][1]=='X')||
       (arr[0][2]=='X' && arr[1][2]=='X' && arr[2][2]=='X')||
       (arr[0][0]=='X' && arr[1][1]=='X' && arr[2][2]=='X')||
       (arr[0][2]=='X' && arr[1][1]=='X' && arr[2][0]=='X')
       ){
           System.out.println("X wins!");
           break;
       }
    else if((arr[0][0]=='O' && arr[0][1]=='O' && arr[0][2]=='O')||
       (arr[1][0]=='O' && arr[1][1]=='O' && arr[1][2]=='O')||
       (arr[2][0]=='O' && arr[2][1]=='O' && arr[2][2]=='O')||
       (arr[0][0]=='O' && arr[1][0]=='O' && arr[2][0]=='O')||
       (arr[0][1]=='O' && arr[1][1]=='O' && arr[2][1]=='O')||
       (arr[0][2]=='O' && arr[1][2]=='O' && arr[2][2]=='O')||
       (arr[0][0]=='O' && arr[1][1]=='O' && arr[2][2]=='O')||
       (arr[0][2]=='O' && arr[1][1]=='O' && arr[2][0]=='O')
       ){
           System.out.println("O wins!");
           break;
       }
    else if(arr[0][0]!='_' && arr[0][1]!='_' && arr[0][2]!='_'
    && arr[1][0]!='_' && arr[1][1]!='_' && arr[1][2]!='_'
    && arr[2][0]!='_' && arr[2][1]!='_' && arr[2][2]!='_'){
        System.out.println("Draw!");
        break;

完整程序的路径:Tic-Tac-Toe for 2 players

维加斯发生的事情留在维加斯...

我的意思是:break 语句总是 "local" 到 "innermost" 循环分别围绕那个 break声明。

您无需担心正在调用的方法中出现中断

调用方法对调用者产生影响的唯一方式是更改方法字段的内容(从而更改周围对象的状态);或者通过更改作为参数提供给方法的对象的状态。

'return'关键字用于退出方法,'break'不适用于方法。

对于您的 checkGameStatus(),您可以尝试 return 布尔值并检查它以中断循环。

"Break" 对 "If-Statements" 没有影响。 "Break" 与 "switch"、"for"、"while" 和 "do" 一起使用。

如果条件为真,"System.out.println()"将被执行。然后程序在您的 "If-Statements".

之后继续执行代码