Ajuda para criar um looping

1 resposta
java
F

Então pessoal, sou novo no fórum e iniciante em java.
Resumidamente tenho uma tarefa com 3 exercícios, criei um menu usando o switch case para escolha de qual exercício quer executar. Eu queria uma forma de após de apos um dos exercícios serem executados, aparecer a opção de voltar ao menu e aparecer as opções novamente de qual exercício quer executar.
Código abaixo:

import java.util.Locale;
import java.util.Scanner;

public class Tarefa02 {

public static void main(String[] args) {

	Scanner sc = new Scanner(System.in);

	int menu;
	System.out.println("TAREFA 02");
	System.out.println("Digite o número correspondente ao exerício: \n" + "1 - Inflação \n"
			+ "2 - Média Ponderada \n" + "3 - Tempo estimado para Download ");
	
	menu = sc.nextInt();
	
	switch (menu) {
	case 1:
		Inflacao();
		break;
	case 2:
		MediaPonderada();
		break;
	case 3:
		TempoDeDownload();
	default:
		break;
	}
	sc.close();
}

public static void Inflacao() {
	/*
	 * 1 - Faça um programa que receba um valor e exiba a sua correção de acordo com
	 * a inflação do mês. O programa deverá solicitar ao usuário o valor e o
	 * percentual da inflação
	 */

	Scanner sc = new Scanner(System.in);
	Locale.setDefault(Locale.US);

	double valor, percentual, calculo;
	System.out.println("1 - Exercício de Cálculo de Inflação selecionado");
	System.out.println("Informe o valor R$: ");
	valor = sc.nextDouble();
	System.out.println("Informe o percentual da inflação: ");
	percentual = sc.nextDouble();
	calculo = valor * (percentual / 100 + 1);

	System.out.println("Valor com a correção da Inflação: " + calculo);
	sc.close();
}

public static void MediaPonderada() {
	/*
	 * 2 - Faça um algoritmo que leia três notas de um aluno, calcule e escreva a
	 * média final deste aluno. Considerar que a média é ponderada e que o peso das
	 * notas é 2, 3 e 5. Fórmula para o cálculo da média final é:
	 */

	Scanner sc = new Scanner(System.in);
	Locale.setDefault(Locale.US);
	System.out.println("2 - Exercício de Média Ponderada selecionado");
	double nota1, nota2, nota3, media;
	System.out.println("Informe a primeira nota: ");
	nota1 = sc.nextDouble();
	System.out.println("Informe a segunda nota: ");
	nota2 = sc.nextDouble();
	System.out.println("Informe a terceira nota: ");
	nota3 = sc.nextDouble();
	media = ((nota1 * 2) + (nota2 * 3) + (nota3 * 5)) / 10;
	System.out.println("O valor da média é: " + media);

	sc.close();

}

public static void TempoDeDownload() {
	/*
	 * 3 - Faça um programa que peça o tamanho de um arquivo para download (em MB) e
	 * a velocidade de um link de Internet (em Mbps), calcule e informe o tempo
	 * aproximado de download do arquivo usando este link (em minutos).
	 */

	Scanner sc = new Scanner(System.in);
	Locale.setDefault(Locale.US);
	System.out.println("3 - Exercício de Cálculo de Tempo de Download selecionado");

	double tamanho, internet, tempo;
	System.out.println("Informe o tamanho do arquivo em Mb: ");
	tamanho = sc.nextDouble();
	System.out.println("Informe a velocidade da internet em Mb: ");
	internet = sc.nextDouble();
	tempo = (tamanho / (internet / 8));
	double h, m, s;

	h = tempo / 3600;
	m = (tempo % 3600) / 60;
	s = tempo % 60;

	System.out.printf("O tempo para baixar o arquivo é  %.0f h: %.0f m: %.0f s", h, m, s);

	sc.close();

}

}

1 Resposta

darlan_machado

Coloque tudo o que está dentro do método main, após a declaração do Scanner e antes da invocação do método close, em um laço, como:

Scanner sc = new Scanner(System.in);
int sair = 1;
while(sair != 0) {
//Todo o resto
}
sc.close();
Criado 9 de março de 2020
Ultima resposta 9 de mar. de 2020
Respostas 1
Participantes 2