java - 为什么输出的结果为4321?
黄舟
黄舟 2017-04-18 10:49:09
0
4
703
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?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(4)
Peter_Zhu

Boucle deux fois, la première fois 1 et 4 sont échangés, la deuxième fois 2 et 3 sont échangés

Peter_Zhu

Pourquoi pas ? « 1 » et « 4 » sont intervertis, « 2 » et « 3 » sont intervertis.

伊谢尔伦

Quand i = 0;
char d=c[i];
Attribuez la valeur de c[0] à d, qui est 1
À ce moment, le tableau c est toujours [1, 2, 3 ; ,4] , mais d a une valeur initiale, qui est 1;
[Le sens de l'opération est de placer l'échange A en position inactive]
c[i]=c[c.length-(i+1)];
Attribuer la valeur de c [3] à c[0] ;
À ce moment, le tableau c est [4,2,3,4] et la valeur d est 1;
[Le sens de l'opération est de donner le valeur échangée du côté B vers le côté A]
c[c.length-(i+1)]=d;
Attribuez la valeur de d, qui est la valeur 1 de c[0] au début, à c[3]
Jusqu'à présent, la valeur du tableau c est [4,2,3,1], et la valeur de d est 1
[Le sens de l'opération est de donner le nombre de positions libres, c'est-à-dire la valeur initiale de A, vers B; finalement, l'échange des valeurs​​de A et B est réalisé]

Quand i vaut 1,
char d=c[i];
d est c[1], qui vaut 2
À ce moment, le tableau c est [4,2,3,1], et la valeur d est 2 ;
c[i]=c[c.length-(i+1)];
Attribuez la valeur de c[2] à c[1]
À ce stade, le tableau c est [4,3,3,1] ; et la valeur d est 2 ;
c[c.length-(i+1)]=d;
Attribuez la valeur de d, qui est la valeur 2 de c[1] au début, à c[2] ; Le tableau c est [4,3,2,1] et la valeur d est 2 ;
Terminer la première boucle for

小葫芦

Il s'agit essentiellement d'une opération d'échange
Exemple
a = 1 b = 2 => c = b => b = a a = c
Si cela est possible :
a =1 , b = 2;
a,b:=b,a;
Ça a l'air plus simple

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal