Char c[]={'1','2','3','4'}
for(int i=0;i<c.length/2;i++){
char d=c[i];
c[i]=c[c.length-(i+1)];
c[c.length-(i+1)]=d;
}
for(int i=0;i<c.length;i++){
System.out.println(c[i]);
}
为什输出的结果为4321?
伊谢尔伦2017-04-18 10:51:09
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입니다.
高洛峰2017-04-18 10:51:09
기본적으로는 스왑 작업입니다
예
a = 1 b = 2 => c = b => b = a a = c
가능한 경우:
a =1 , b = 2;
a,b:=b,a;
더 단순해 보입니다