나는 2 개의 루프를 가지고 있고, 2048과 같은 게임을하고있다. 이 메소드는, 무언가가 왼쪽으로 밀린 경우에 true를 돌려줍니다. 그러나, 그것은 나에게 거짓을 반환하고 "바나나"만 인쇄하고 있습니다. 즉, 다른 for 루프는 심지어 실행되지 않습니다. 어떤 경우일까요?두 번째 for 루프가 실행되고 있지 않습니까?
public boolean slideLeft(int[][] array, int row) {
int[] array2 = new int[array.length];
boolean result = false;
for(int j = 0; j < array.length; j++) {
array2[j] = array[j][row];
System.out.println("banana");
}
for (int i = 0; i <array2.length; i ++) {
if (array2[i] == 0 && array2[i+1] != 0 && i != array2.length-1) {
System.out.println("apple");
array2[i] = array2 [i+1];
result = true;
}
if(array2[i] != 0 && i != 0 && array2[i-1] == array2[i]) {
System.out.println("pear");
array2[i-1] = 2*(array2[i-1]);
array2[i]=0;
result = true;
}
}
return result;
}
또는 다른 루프가 실행되고 있지만 조건이 일치하지 않습니다. 귀하의 조건이 정확히 무엇을 테스트해야합니까? –
디버거를 실행하고 단계별 실행으로 이동하십시오. 모든 변수를 검사하고 현재 진행중인 작업을 확인할 수 있습니다. –
아니면,'if' 둘 다에'else'를 만들고 거기에'System.out.println ("사과가 아닙니다);'와 같이 인쇄하십시오. –