Foros del Web » Programación para mayores de 30 ;) » Java »

Duda aprendiz evaluación de IF

Estas en el tema de Duda aprendiz evaluación de IF en el foro de Java en Foros del Web. Tengo una duda, a ver si alguno de ustedes me puede ayudar, en este pedacito de código tengo 3 if, pero por ejemplo la cantidad ...
  #1 (permalink)  
Antiguo 05/01/2015, 00:19
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
Duda aprendiz evaluación de IF

Tengo una duda, a ver si alguno de ustedes me puede ayudar, en este pedacito de código tengo 3 if, pero por ejemplo la cantidad 90 es menor, que 200, que 150 y que 100, ¿está bien escrito? por que obviamente, lo que quiero que haga es el primer cálculo (en este caso) pero también es cierto que al cumplirse las 3 no pasaría de la primera a pesar de que las 3 sean reales (en las 3 el valor es menor)?
Código:
 * @author eduardo-poo
 */
public class IF {
    
    
    public static void main (String []args){
    
    //declaramos la variable a hacerle el calculo de utilidad
        int valor = 90;
    //declaramos la variable del IVA
        float iva =1.16f;
    
        if (valor<=100){
        System.out.println("El costo del producto es de: "+(valor*iva*1.05));
        }
        else if (valor<=150)
        {
        System.out.println("El costo del producto es de: "+(valor*iva*1.17));
        }
        else if (valor<=200)
        {
        System.out.println("El costo del producto es de: "+(valor*iva*1.18));
        }
       
        
    }
            
}
Gracias!
  #2 (permalink)  
Antiguo 05/01/2015, 04:04
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Duda aprendiz evaluación de IF

¿Qué es lo que quieres que haga? Si no lo hace entonces está mal escrito.

Cita:
a ver si alguno de ustedes me puede ayudar, en este pedacito de código tengo 3 if
No, tienes un if y dos else if.

https://algoritmiafordummies.wikispa...00x600/1_o.jpg

Si se cumple una condición, las siguientes no se evalúan.

Si tuvieses 3 if, todas las condiciones se evaluarían, independientemente de lo ocurra en las anteriores.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 05/01/2015, 06:42
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Duda aprendiz evaluación de IF

Hola heyimedd,
cuando hay un IF seguidos de ELSE IF, quiere decir que cuando encuentre una coincidencia se saldrá del bloque, de ahí que siempre se te quede en el primero.

Si quieres que te evalúe todas, tendrás que hacer 3 bloques IF.

Salut!
  #4 (permalink)  
Antiguo 08/01/2015, 16:12
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Duda aprendiz evaluación de IF

CLARO QUE SE PUEDE... pls... solo debes decirle de donde hasta donde debe evaluar.. si la sentencia AND (&&) no funciona bien, prueba con OR (||) estoy en el celu y cuesta un poco escribir y verificar. Lo ideal sería en estos casos una estructura Switch Case, pero bueno, ya que estas con eso


Código Java:
Ver original
  1. if (valor > 0 && valor<=100){
  2.         System.out.println("El costo del producto es de: "+(valor*iva*1.05));
  3.         }
  4.         else if (valor > 101 && valor<=150)
  5.         {
  6.         System.out.println("El costo del producto es de: "+(valor*iva*1.17));
  7.         }
  8.         else if (valor > 151 && valor<=200)
  9.         {
  10.         System.out.println("El costo del producto es de: "+(valor*iva*1.18));
  11.         }else{
  12.         System.out.println("Los valores no pueden ser evaluados");
  13.         }
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 09/01/2015, 02:24
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: Duda aprendiz evaluación de IF

Cita:
Iniciado por loncho_rojas Ver Mensaje
CLARO QUE SE PUEDE... pls... solo debes decirle de donde hasta donde debe evaluar.. si la sentencia AND (&&) no funciona bien, prueba con OR (||) estoy en el celu y cuesta un poco escribir y verificar. Lo ideal sería en estos casos una estructura Switch Case, pero bueno, ya que estas con eso


Código Java:
Ver original
  1. if (valor > 0 && valor<=100){
  2.         System.out.println("El costo del producto es de: "+(valor*iva*1.05));
  3.         }
  4.         else if (valor > 101 && valor<=150)
  5.         {
  6.         System.out.println("El costo del producto es de: "+(valor*iva*1.17));
  7.         }
  8.         else if (valor > 151 && valor<=200)
  9.         {
  10.         System.out.println("El costo del producto es de: "+(valor*iva*1.18));
  11.         }else{
  12.         System.out.println("Los valores no pueden ser evaluados");
  13.         }
El codigo que pones hace exactamente lo mismo que el codigo original posteado. Solo entrara en la primera condicion que se cumpla e ignorara las demas. Los && en este caso no aportan nada.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #6 (permalink)  
Antiguo 09/01/2015, 05:19
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Duda aprendiz evaluación de IF

Profesor_Falken No se quien te enseñó lógica programática, y quien te dio ese título de Profesor, pero si no lo pruebas, como lo vas a saber.. se supone que VALOR es un dato dinámico... yo lo hago con SWITCH CASE, pero igual funciona con if else.. no lo van a inventar en vano.... PRUEBALO Y LUEGO DI SI ES O NO FACTIBLE.. AH, y cambia el valor de la propiedad VALOR para comprobar... obvio que si es 90 nunca va a variar, pero deberías enteder el espíritu del problema... el problema ni siquiera es de JAVA es de pseudocódigo nada mas.

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         //declaramos la variable a hacerle el calculo de utilidad... luego cambialo por 153, y luego por 112, verás que si funciona
  3.         int valor = 35;
  4.     //declaramos la variable del IVA
  5.         float iva =1.16f;
  6.         if (valor > 0 && valor<=100){
  7. // cambio la palabra PRODUCTO con un indice para ver en cual ha entrado
  8.         System.out.println("El costo del producto-caso1 es de: "+(valor*iva*1.05));
  9.         }
  10.         else if (valor > 101 && valor<=150)
  11.         {
  12.         System.out.println("El costo del producto-caso2 es de: "+(valor*iva*1.17));
  13.         }
  14.         else if (valor > 151 && valor<=200)
  15.         {
  16.         System.out.println("El costo del producto-caso3 es de: "+(valor*iva*1.18));
  17.         }else{
  18.         System.out.println("Los valores no pueden ser evaluados");
  19.         }
  20.     }
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 09/01/2015, 06:07
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Duda aprendiz evaluación de IF

Cita:
Iniciado por loncho_rojas Ver Mensaje
Profesor_Falken No se quien te enseñó lógica programática, y quien te dio ese título de Profesor, pero si no lo pruebas, como lo vas a saber.. se supone que VALOR es un dato dinámico... yo lo hago con SWITCH CASE, pero igual funciona con if else.. no lo van a inventar en vano.... PRUEBALO Y LUEGO DI SI ES O NO FACTIBLE.. AH, y cambia el valor de la propiedad VALOR para comprobar... obvio que si es 90 nunca va a variar, pero deberías enteder el espíritu del problema... el problema ni siquiera es de JAVA es de pseudocódigo nada mas.

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         //declaramos la variable a hacerle el calculo de utilidad... luego cambialo por 153, y luego por 112, verás que si funciona
  3.         int valor = 35;
  4.     //declaramos la variable del IVA
  5.         float iva =1.16f;
  6.         if (valor > 0 && valor<=100){
  7. // cambio la palabra PRODUCTO con un indice para ver en cual ha entrado
  8.         System.out.println("El costo del producto-caso1 es de: "+(valor*iva*1.05));
  9.         }
  10.         else if (valor > 101 && valor<=150)
  11.         {
  12.         System.out.println("El costo del producto-caso2 es de: "+(valor*iva*1.17));
  13.         }
  14.         else if (valor > 151 && valor<=200)
  15.         {
  16.         System.out.println("El costo del producto-caso3 es de: "+(valor*iva*1.18));
  17.         }else{
  18.         System.out.println("Los valores no pueden ser evaluados");
  19.         }
  20.     }
Antes de dar una contestación tan chulesca deberías haberte parado a ver lo que has escrito y lo que te han contestado.

Profesor_Falken no ha dicho que tu código no funcione, sólo que lo que has puesto es exactamente lo mismo que ha puesto la persona que abrió el hilo pero añadiéndole unos límites inferiores que no tienen ningún efecto.

else if (valor > 101 && valor<=150)
{
System.out.println("El costo del producto-caso2 es de: "+(valor*iva*1.17));
}
else if (valor > 151 && valor<=200)
{
System.out.println("El costo del producto-caso3 es de: "+(valor*iva*1.18));
}

Si valor está entre 100 y 150 siempre entrará por ese else if y nunca llegará al siguiente, así que ¿de qué te sirve la condición valor > 151? Hará lo mismo con ella o sin ella.

El problema es que no está clara cuál es la duda del primer post, Profesor_Falken (y yo) entiende que lo que pregunta es cómo hacer que cada valor haga lo mismo que los tramos anteriores más una cosa nueva. Y eso no lo hace ni tu código ni el suyo.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 09/01/2015, 09:48
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Duda aprendiz evaluación de IF

Deja que el que creo el post responda si cumple o no con su necesidad... después deduzcamos si esta bien o no el planteamiento...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 09/01/2015, 10:04
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: Duda aprendiz evaluación de IF

Buenas,

Me reitero en lo dicho.
Ejecutando tu codigo o el que ha posteado originalmente heyimedd el resultado siempre sera el mismo para cualquier valor de la variable valor. Los ANDs que has aniadido son completamente redundantes. No entiendo como puedes tener esos humos cuando ni siquiera eres capaz de ver algo tan simple...

Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 09/01/2015 a las 10:11
  #10 (permalink)  
Antiguo 09/01/2015, 10:33
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Duda aprendiz evaluación de IF

Cita:
Iniciado por loncho_rojas Ver Mensaje
Deja que el que creo el post responda si cumple o no con su necesidad... después deduzcamos si esta bien o no el planteamiento...
Responda lo que responda, no dejará de ser cierto que los dos códigos dan casi el mismo resultado, la única diferencia es que el tuyo no evalúa el 101 y el 151.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #11 (permalink)  
Antiguo 09/01/2015, 12:24
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Duda aprendiz evaluación de IF

Genial, es una cuestión de poner un indice de comparación y listo... pero funciona... de todas maneras te sugerí que esperemos a ver si es lo que busca el que creó el post, de por ahi ni siquiera es lo que quiere, o le calza perfecto, o si quieres seguimos posteando nosotros, se me ocurre aplicar esto en un caso real y tendré que el valor es dinámico, o no tiene sentido hacer siempre el mismo valor... si quiere evaluar los 3 a la vez, habrá que ver otro método incluso, si lo que quiere es sacar un calculo de acuerdo al valor que pasa, pues me parece válido... pero si la intención es hacer totalmente otra cosa, pues no lo sabemos, he ahi mi sugerencia, pero anda, escribamos que esta diver esto...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:53.