
Ayuda Loos for Anidados
Publicado por omar (56 intervenciones) el 19/06/2015 17:11:22
Hola, alguien podr{ia explicarme como funcionan los for anidados??
[b]Esta es la parte que no entiendo, no podria ordenarse el array con un solo for??
Como es que los nombres se ordenan paralelamente ya que un nombre[z] podria no corresponder a edad[z]
y por que hace en el segundo for z=edad.length-1-i??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package cmo;
import java.util.Scanner;
import static java.lang.System.out;
/**
*
* @author cmo
*/
public class OrdenarMatriz {
protected String nombre[];
protected int edad[];
Scanner teclado=new Scanner(System.in);
OrdenarMatriz(){
nombre=new String[4];
edad=new int[4];
for (int i=0; i<nombre.length;i++){
out.println("Ingrese nombre "+(i+1)+":");
nombre[i]=teclado.next();
out.println("Ingrese edad "+(i+1)+":");
edad[i]=teclado.nextInt();
}
}
[b]Esta es la parte que no entiendo, no podria ordenarse el array con un solo for??
Como es que los nombres se ordenan paralelamente ya que un nombre[z] podria no corresponder a edad[z]
y por que hace en el segundo for z=edad.length-1-i??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
protected void ordenDesc(){
for(int i=0; i<edad.length; i++){
for(int z=0; z<edad.length-1-i; z++){
if(edad[z]<edad[z+1]){
int auxEdad=edad[z];
edad[z]=edad[z+1];
edad[z+1]=auxEdad;
String auxNom=nombre[z];
nombre[z]=nombre[z+1];
nombre[z+1]=auxNom;
}
}
}
}
protected void mostrarDatos(){
ordenDesc();
for(int i=0; i<nombre.length; i++){
out.println("Nombre: "+nombre[i]+" Edad: "+edad[i]);
out.println();
}
}
public static void main(String ar[]){
OrdenarMatriz datos=new OrdenarMatriz();
datos.mostrarDatos();
}
}
Valora esta pregunta


0