i = 0; char d=c[i]; d에 c[0]의 값을 할당하면 1이 됩니다. 이때 c 배열은 여전히 [1, 2, 3입니다. ,4] , 그러나 d의 초기값은 1입니다. [교환된 당사자 A를 유휴 상태로 두는 작업의 의미] c[i]=c[c.length-(i+1)]; c의 값을 할당합니다. [3] to c[0] ; 이때, c 배열은 [4,2,3,4]이고, d 값은 1; [ 연산의 의미는 B변의 값을 A변으로 교환] c[c.length-(i+1)]=d; 처음에 c[0]의 값 1인 d의 값을 c[3]에 할당합니다. c 배열의 값은 [4,2,3,1]이고 d의 값은 1입니다. [연산의 의미는 자유 위치의 개수, 즉 초기값을 주는 것입니다. A, B로, 궁극적으로 A와 B의 가치 교환이 이루어짐]
i가 1일 때 char d=c[i]; d는 c[1], 즉 2입니다. 이때 c 배열은 [4,2,3,1]입니다. d 값은 2입니다. c[i]=c[c.length-(i+1)]; c[2]의 값을 c[1]에 할당합니다. 이때 c 배열은 [4,3,3,1]입니다. d 값은 2입니다; c[c.length-(i+1)]=d; 처음에 c[1]의 값 2인 d 값을 c[2]에 할당합니다. c 배열은 [4,3,2,1]이고 d 값은 2입니다.
루프를 두 번, 처음에는 1과 4가 바뀌고, 두 번째에는 2와 3이 바뀌었습니다
왜 안 되나요? '1'과 '4'가 바뀌고, '2'와 '3'이 바뀌었습니다.
i = 0;
char d=c[i];
d에 c[0]의 값을 할당하면 1이 됩니다.
이때 c 배열은 여전히 [1, 2, 3입니다. ,4] , 그러나 d의 초기값은 1입니다.
[교환된 당사자 A를 유휴 상태로 두는 작업의 의미]
c[i]=c[c.length-(i+1)];
c의 값을 할당합니다. [3] to c[0] ;
이때, c 배열은 [4,2,3,4]이고, d 값은 1;
[ 연산의 의미는 B변의 값을 A변으로 교환]
c[c.length-(i+1)]=d;
처음에 c[0]의 값 1인 d의 값을 c[3]에 할당합니다.
c 배열의 값은 [4,2,3,1]이고 d의 값은 1입니다.
[연산의 의미는 자유 위치의 개수, 즉 초기값을 주는 것입니다. A, B로, 궁극적으로 A와 B의 가치 교환이 이루어짐]
i가 1일 때
첫 번째 for 루프를 종료합니다.char d=c[i];
d는 c[1], 즉 2입니다.
이때 c 배열은 [4,2,3,1]입니다. d 값은 2입니다.
c[i]=c[c.length-(i+1)];
c[2]의 값을 c[1]에 할당합니다.
이때 c 배열은 [4,3,3,1]입니다. d 값은 2입니다;
c[c.length-(i+1)]=d;
처음에 c[1]의 값 2인 d 값을 c[2]에 할당합니다.
c 배열은 [4,3,2,1]이고 d 값은 2입니다.
기본적으로는 스왑 작업입니다
예
a = 1 b = 2 => c = b => b = a a = c
가능한 경우:
a =1 , b = 2;
a,b:=b,a;
더 단순해 보입니다