Java - Menu para repetição do código

2 respostas
java
D

Pessoal… estou trabalhando nesse exercício para a faculdade…

Aparentemente consegui fazer o exercício sem problemas, agora a duvida que me surgiu foi:

Como faço pra criar um comando para a repetição do menu, para ele voltar para o começo caso uma das opções seja invalida?

Segue o código:


import java.util.*;
public class TipoInvestimento {

public static void main(String[] args) {
	Scanner val = new Scanner(System.in);
	Scanner tip = new Scanner(System.in);
	double valor,valori;
	String tipov;
	
	System.out.println("Qual o valor do investimento??");
	valor = val.nextDouble();
	
	System.out.println("Qual o tipo de investimento?");
	tipov = tip.next();
	
	if (tipov.equals("p")){
		valori = (valor*0.3)+valor;
	System.out.println("O valor do investimento é de "+valori);
	}else{
		if(tipov.equals("f")){
		valori = (valor*0.5)+valor;
		System.out.println("O valor do investimento é de "+valori);
		}else{
			if(tipov.equals("c")){
		valori = (valor*0.6)+valor;
		System.out.println("O valor de investimento é de "+valori);
			}else{
				if(tipov.equals("ac")){
					valori = (valor*10)+valor;
					System.out.println("O valor de investimento é de "+valori);
				}
			}
	 }
  }

}

}

Existe um meio de fazer ele ir pro começo caso o usuário digite algo 'invalido"?
Existe um meio de colocar uma opção para começão de novo? E o código seja executado do começo?

Obrigado pela atenção!

2 Respostas

L

De novo com esse if dentro de um else horroroso?:joy: pensei que se tinha aprendido sobre if, else if, else com a última resposta.

Enquanto pra martelo todo problema é prego, existe uma forma mais eficiente de você fazer este código e ficar mais legível. Use switch sempre que você estiver testando se uma variável possui um valor de um grupo definido.

Posto isto eu vou apenas indicar o caminho, não espere por respostas prontas:

//Desta forma as variáveis poderam ser acessadas pelo método menu()
static Scanner val = new Scanner(System.in);
static Scanner tip = val; //Um mesmo Scanner pode ler múltiplos valores
static double valor,valori;
static String tipov;

public static void main(String[] args) {
	int exit = -1;

	    while(exit != 0) {
		  //seu bloco condicional aqui
                  //caso a opção seja valida, faça o calcula e declare exit = 0
		  //caso o input seja errado
		 // menu();
	        } 
}

private static void menu() {
	System.out.println("Qual o valor do investimento?");
	valor = val.nextDouble();

	    System.out.println("Qual o tipo de investimento?");
	        tipov = tip.next();	
}
D

Eai cara tudo bem?
Esse exercício já tinha feito antes da resposta de ontem!
Estou revisando os exercícios pois tenho prova amanha e semana que vem.

Obrigado pela ajuda.

Criado 18 de maio de 2016
Ultima resposta 18 de mai. de 2016
Respostas 2
Participantes 2