Hola,
Posiblemente,
Cita:
Iniciado por AGmzT Hola gente! escribi este código y quisiera saber como simplificarlo muchas gracias!! ...
Código Java:
Ver originalfloat costo, desc0, desc1, desc2, desc3, desc4, desc5, desc6, desc7, desc8, desc9, costoDesc;
public float getCostoDesc() {
float[] desctos = {(100-desc0), (100-desc1), (100- desc2), (100- desc3), (100-desc4),
(100- desc5), (100- desc6), (100- desc7), (100- desc8), (100- desc9)};
int i = desctos.length - 1;
while (i >= 0 && desctos[i] == 0.0f) {
i--;
}
costoDesc = costo;
while (i >= 0) {
costoDesc *= desctos[i--];
}
return costoDesc;
}
Técnicamente hace exactamente lo mismo que el código inicial pero de una forma diferente. No puedo decir simplificado realmente, sino mas corto. Mas simple que el código inicial creo que no es posible.
Cita:
Iniciado por AGmzT ... Les comento que las variables desc.. no siempre van a ser instanciadas por el usuario, y dado que los
miembros del arreglo son el resto de 100- desc.. siempre van a tener valor mayor a 0, de hecho en
el constructor (si no son instanciadas por el usuario) toman un valor fijo que no afecta el producto.
Técnicamente que sean 100-desc no implica que siempre van a tener un valor mayor a 0, 100 - 100 es igual a 0. Pero bueno, si ese es el objetivo real de tu aplicación entonces todo está bien.
Simplemente a mi me pareció extraña la operación y pensé que posiblemente querías porcentajes (por el 100) y no es el caso. También si la lógica de tu aplicación se encarga de inicializar los valores correctamente pues todo sigue bien.
Saludos,