たとえば、checkGameStatus()メソッドを使用して、移動するたびにゲームが終了しているかどうかを調べることができます。完全なプログラムへwhileループがあるところでmainから後で呼び出すことができるメソッドでbreak文を使用できますか?
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;
この作業は他にはありません –
[JLS](https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.15) breakステートメントは、すぐに囲むメソッド**またはイニシャライザ*の最も内側にある 'switch'、' while'、 'do'または' for'ステートメント**に制御を移そうとします。つまり、メソッドから「中断する」ことはできません。そのためには、例外が必要です。 – Andreas
そのためには、例外またはリターンが必要です –