오셀로 board제작중 닥친 난관
조회수 430회
어제부로 오셀로 프로그램 제작에 돌입한 늅늅입니다.
다른게 아니라 분명
f = EMPRY;
코드로 모든 배열을 " º "로 초기화 시켜주었는데도 불구하고 출력결과 모든 배열이
null화 되어있습니다. 어디서 잘못된걸까요?
package project;
import java.util.Arrays;
public class Main{
private static final int BOARD_SIZE = 8;
private static final String WHITE = "●";
private static final String BLACK = "○";
private static final String EMPRY = " º ";
public static void main(String[] args){
String[][] board = new String[BOARD_SIZE][BOARD_SIZE];
startGame(board);
}
private static void startGame(String[][] input){
for(String e[] : input){
for(String f : e){
f = EMPRY;
}
}
for(String e[] : input){
for(String f : e){
System.out.print(f);
}
System.out.println();
}
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
문자열은 상수입니다. 변경불가능하다는 의미입니다.
"" 로 만드는 순간 jvm 내 constant pool 에 생성됩니다.
f = EMPRY
를 하는 순간 다른 주소(EMPRY 문자열 주소)를 가리키게 됩니다.원하는 바를 하려면
f = EMPRY
후 배열에 f를 대입해야 합니다. -
아래와 같은 식이면 되겠죠
jshell> int BOARD_SIZE = 8 jshell> String[][] board = new String[BOARD_SIZE][BOARD_SIZE] jshell> for(String[] arr : board) for(int i = 0; i < BOARD_SIZE; i++) arr[i] = "0" jshell> board board ==> String[8][] { String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" }, String[8] { "0", "0", "0", "0", "0", "0", "0", "0" } } jshell> for(String[] arr : board) for(int i = 0; i < BOARD_SIZE; i++) arr[i] = "1" jshell> board board ==> String[8][] { String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" }, String[8] { "1", "1", "1", "1", "1", "1", "1", "1" } }
댓글 입력