2024년 3회차 1번 문제에서
func(x, 3); 이코드에서 func 함수를 호출할때 x배열의 이름만 써있습니다.
이렇게 인수로 배열의 이름을 지정하면 배열의 시작 주소가 인수로 전달되고
func 함수의 func(String[ ] x, int y) 코드에서 string[ ] x가 그 주소값을 받습니다.
라고 말씀하셨습니다. 결론적으로 이 문제 에서는 값을 비교하였는데..2024년 2회차 2번 문제는 값을 비교하는게 아니라 주소지가 같은지 다른지 비교하여 문제를 푸시더라구요. 어떨때 주소지를 비교하고 어떨때 값만을 비교해서 푸는지 잘 모르겠습니다
안녕하세요 길벗수험서 운영팀입니다.
말씀하신 두가지 문제는 배열자체를 비교했는지, 배열의 특정위치의 값을 비교했는지에 따라 다른것입니다.
배열의 특정위치를 지정하여 비교할때는 값을 비교하는 것이고
배열 자체를 비교할때 주소가 다르면 서로 다른 개체로 인식이 되는것입니다
아래의 코드에서는 x라는 배열과 y라는 배열이 똑같은지 배열자체를 비교한것 입니다
public static void check(int[ ] x, int[ ] y)
if(x = = y) System.out.print("O");
else System.out.print("N");
}
아래의 코드에서는 if(x[i-1].equals(x[i]) 에서 x배열의 특정위치의 값을 비교했습니다
행복한 하루되세요 :)
-
관리자2025-03-31 20:38:52
안녕하세요 길벗수험서 운영팀입니다.
말씀하신 두가지 문제는 배열자체를 비교했는지, 배열의 특정위치의 값을 비교했는지에 따라 다른것입니다.
배열의 특정위치를 지정하여 비교할때는 값을 비교하는 것이고
배열 자체를 비교할때 주소가 다르면 서로 다른 개체로 인식이 되는것입니다
아래의 코드에서는 x라는 배열과 y라는 배열이 똑같은지 배열자체를 비교한것 입니다
public static void check(int[ ] x, int[ ] y)
if(x = = y) System.out.print("O");
else System.out.print("N");
}
아래의 코드에서는 if(x[i-1].equals(x[i]) 에서 x배열의 특정위치의 값을 비교했습니다
static void func(String[ ] x, int y) {for(int i = 1; i < y; i+ +) {if(x[i-1].equals(x[i])) {System.out.print("O");}else {System.out.print("N");}행복한 하루되세요 :)