예를 들어, 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;
경로 : Tic-Tac-Toe for 2 players
다르지 않으면이 작업을 수행하십시오. –
[JLS] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.15) break' 문은 컨트롤을 ** 둘러싼 메서드 ** 또는 initializer *의 가장 안쪽에있는'switch','while', do 또는 for 문 **에 전달하려고 시도합니다. 다른 말로하면, 당신은 방법에서 벗어날 수 없습니다. 이를 위해서는 예외가 필요합니다. – Andreas
그 때문에 예외 또는 반환이 필요합니다. –