Soy nuevo en java y en programacion orientada a objetos, pero recientemente tenia que hacer un programita que resolvia unas ecuaciones sencillas.
El programa se componia de un menu, del cual muestro las opciones mediante un println y un switch dirije a cada seccion (que hace una ecuacion distinta), de este modo:
Que quieras hacer?
Resolver ecuacion: 1
resolver ecuacion: 2
El usuario pulsa 1 y se dirije a la ecuacion una, y el programa la resuelve bien, pero qiero añadir que al final de la opcion de volver al menu principal, resolver la misma ecuacion (con otros datos, claro) y por ultimo, salir.
Me imagino que tengo que hacerlo con una if, pero no se como. A ver si alguien me indica como (o me da pistas, tampoco busco que programe por mi :) )
Un saludo y gracias de antemano
Codigo:
Código java:
Ver original
import java.util.Scanner; public class MrSnell2 { int snellius = 0; do { //ANEXOS //leemos el dato introducido por el usuario snellius = reader.nextInt(); //segun el numero, empieza el switch switch (snellius) { //1: Calculo de angulo de incidencia case 1: //Creamos las variables double n1a = 0; //Indice refraccion primer medio double n2a = 0; //Indice refraccion segundo medio double angRefractadoA = 0; //Angulo de refraccion //Obtenemos los datos n1a = reader.nextDouble(); n2a = reader.nextDouble(); angRefractadoA = reader.nextDouble(); //empezamos a procesar y despejar double segundaparteA = n2a * senAngRefractadoA; double rA = resultadoA / n1a; //Resultado break; //2: Calculo de angulo refractado case 2: //Creamos las variables double n1b = 0; //indice refraccion primer medio double n2b = 0; // indice refraccio segundo medio double angIncidenteB = 0; //angulo de incidencia //Obtenemos los datos n1b = reader.nextDouble(); n2b = reader.nextDouble(); angIncidenteB = reader.nextDouble(); //Empezamos a procesar y despejar double primeraparteB = senAngIncidenteB * n1b; double rB = primeraparteB / n2b; //resultado break; //3: Indice de refraccion del primer medio case 3: double angIncidenteC = 0; double n2c = 0; double angRefractadoC = 0; //Obtenemos los datos: angIncidenteC = reader.nextDouble(); n2c = reader.nextDouble(); angRefractadoC = reader.nextDouble(); //Procesamos y despejamos double segundaparteC = n2c * senAngRefractadoC; double rC = resultadoC / angIncidenteC; break; //4: Indice de refraccion del segundo medio case 4: double angIncidenteD = 0; double n1d = 0; double angRefractadoD = 0; //Obtenemos los datos n1d = reader.nextDouble(); angIncidenteD = reader.nextDouble(); angRefractadoD = reader.nextDouble(); //procesamos y despejamos double primeraparteD = n1d * angIncidenteD; double rD = primeraparteD / angRefractadoD; //5: Angulo limite y reflexion total break; case 5: double n1e = 0; double n2e = 0; //angulo limite (90) n1e = reader.nextDouble(); n2e = reader.nextDouble(); //parte derecha de la ecuacion: n1 * sen90 double segundaparteE = n2e * angulolimite; // parte izquierda de la ecuacion n1* senIx y despejamos double rE = n1e / segundaparteE; //resultado System.out.println("El angulo limite es de: " + resultadoE + "º" + "\nA partir de esa inclinacion se produce reflexion total."); break; } }while(snellius != 0); } }