Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > suscriptor nuevo

hola que tal estoy incursionando en java y dando mis primeros pasos quisiera que me den su opinión respecto del siguiente código , las sumas y restas me dan resultados con errores lógicos mientras que las operaciones de multiplicación dan bien el resultado.
la verdad lo revise muchas veces pero no puedo econtrar el error. Muchas gracias.


Este programa aparentemente está bien pero da un error lógico en resultado final es operaciones 1 y 2

package com.eliasjavatutorial6;

import java.util.Scanner;

public class Tutorial6 {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Menú de opciones");
System.out.println("1.Suma de dos numeros:(x+y)");
System.out.println("2.Resta de dos numeros:(x-y)");
System.out.println("3.Multiplicación de dos numeros:(x*y)");
System.out.println("4.División de dos numeros:(x/y)");
System.out.println();
System.out.println("Ingrese una opcion");
int opcion = scanner.nextInt();

System.out.println("ingrese el primer número");
int x = scanner.nextInt();
System.out.println("ingrese el segundo número");
int y = scanner.nextInt();
int resultado;
if (opcion ==1) {
resultado = x+y;
} else {

}
if (opcion ==2) {
resultado = x-y;
} else {

}
if (opcion ==3) {
resultado = x*y;
} else {
resultado = x/y;
}
System.out.println(resultado);

}
}

diciembre 8, 2016 | Registered Commenterlidoro

Hola, tu problema es:


} else {
resultado = x/y;
}

El else de la opcion 3, ya que cuando es opcion 1, o 2, no es opcion 3 y por tanto entra en el else y siempre acaba haciendo "x/y". Te recomiendo usar la estructura switch:


switch(opcion){
case 1:
//suma
break;

case 2:
//resta
break;
....
}

Esa estructura es mas apropiada, para lo que intentas hacer.
De todas formas si quieres seguir usando la estructura if, puedes hacerla usano el if extendido que se suele llamar, de la forma:


if (opcion ==1) {
resultado = x+y;
}
else if(opcion ==2){
resultado = x-y;
}
else if (opcion ==3) {
resultado = x*y;
}
else {
resultado = x/y;
}

Hay muchas formas, tb puedes usar if anidados. Bueno un saludo.

diciembre 8, 2016 | Registered Commenterloderain

Loderain
Muchas gracias hermano, me despejaste las dudas!!! saludos desde Tucuman, Argentina

diciembre 9, 2016 | Unregistered Commenterlidoro