Ir ao conteúdo
  • Cadastre-se

Java Java: Manter valores de vetores fixos dentro de um loop.


Ir à solução Resolvido por Visitante,

Posts recomendados

Sou iniciante em Java, esse código calcula e exibe a média de quatro notas (cada uma armazenada em um vetor). Possui dois menus:

 

menu 1:

1 - Gerar dados - (Os vetores são preenchidos com doubles aleatórios de 0-10)

2 - Inserir dados - (O usuário insere o valor de cada vetor)

3 - Sair

 

menu 2:

1 - Exibir a média anual de cada aluno

2 - Exibir média da turma                                         

3 - Exibir média de um aluno específico

4 - Voltar ao menu anterior

 

Após o passar pelo segundo menu (escolhendo 1, 2 ou 3) o usuário tem a opção continuar (loop), quando isso acontece o menu 1 ganha uma nova opção:

0 - Utilizar banco de dados existente. (Essa opção pularia a definição de valores dos vetores (pois eles já estariam definidos))

 

Agora chegamos no problema: Ao invés de manter os dados definidos anteriormente, eles (os vetores) estão ficando vazios, retornando 0,00.

Como manter os dados informados na primeira repetição do loop?

Segue aí o código:

import java.util.Scanner;
import java.util.Random;
public class Quest05 {
	
	public static double eDouble(String str) {
		double valid;
		try {	
			str = str.replace(",", ".");
			valid = Double.parseDouble(str);
		
		}
		catch (NumberFormatException e) {
			valid = 121;
		}
		return valid;
		
	}
	
	public static int eInteger(String str) {
		int valid;
		try {	
			
			valid = Integer.parseInt(str);
		
		}
		catch (NumberFormatException e) {
			valid = 121;
		}
		return valid;
		
	}
	
	public static boolean loop(String restart) { // menu sim ou não
		Scanner scanner = new Scanner (System.in);
		char temp = 'd';
		boolean end = false;
		
		while (temp != 's') {  //O loop só é quebrado se o usuário entrar com 's'ou 'n'
			
			if (restart.length() > 1 || restart.equalsIgnoreCase("")) 
				restart = "p";
				
			temp = restart.charAt(0);
				
			if (temp == 'n') {
				end = true; //encerra o programa
				break;
			}	
			else if (temp != 's') {
				System.out.println("Opção inválida!!");
				restart = scanner.nextLine();
			}
				
		}
		return end;
	}
	
	public static void main(String[] args) {
	
		Scanner scanner = new Scanner(System.in);
		boolean newOption = false;
		
		System.out.println("Bem vindo ao Medianator 4000!!!"); // Boas vindas
		System.out.println("Tecle [ENTER] para continuar: ");
     	String enter = "nada";
     	  	
		while (!enter.equals("")) {
				
				enter = scanner.nextLine();//vai ler o que o usuário digitar
				//O loop só é quebrado se o usuário entrar com \n
				if (enter.equals(""))
					break;
		}	
		
		int repeat = 0;//loop
		
		while (repeat == 0) {
			
			boolean nextBreak = false;
			
			//números aleatórios
			double m1[] = new double [41];
			double m2[] = new double [41];
			double m3[] = new double [41];
			double m4[] = new double [41];
			
			//menu 1
			System.out.println("Escolha a opção desejada: ");
			
			if (newOption)
				System.out.println("0 - Utilizar banco de dados existente ");
			
			System.out.println("1 - Gerar novo banco de dados");
			System.out.println("2 - Inserir novos dados");
			System.out.println("3 - Sair");
			String op = "e";
			
			int menu1 = 0;
			
			while (menu1 == 0) {
				op = scanner.nextLine();
				int option = eInteger(op);
				if (!newOption && option == 0)
					option = 121;
							
				//new Random().nextDouble(); //double aleatório de 0 - 1;
				double start = 0;
				double end = 10;
				
				switch (option) {
					case 0:
						menu1++;
						break;
						
					case 1: //As médias são preenchidas com números aleatórios
						
						for (int i = 1;  i < m1.length; i++) {
							
							m1[i] += start + (new Random().nextDouble() * (end - start));
								
						}
						
						for (int i = 1;  i < m2.length; i++) {
							
							m2[i] += start + (new Random().nextDouble() * (end - start));
							
						}
						
						for (int i = 1;  i < m3.length; i++) {
							
							m3[i] += start + (new Random().nextDouble() * (end - start));
							
						}
						
						for (int i = 1;  i < m4.length; i++) {
							
							m4[i] += start + (new Random().nextDouble() * (end - start));
							
						}
						menu1++;
						break;
						
					case 2:// O usuário insere as notas de cada media
						
						String nota = "j";
						System.out.println("Primeira avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						
						for (int i = 1;  i < m1.length; i++) {
							
							int loop2 = 0;
							while (loop2 == 0) {
								System.out.println("Digite a primeira nota do aluno " + i);
								nota = scanner.nextLine();
								
								if (nota.equals("Sair")) {
									System.out.println("Fim de Programa.");
									repeat++;
									nextBreak = true;
									break;
								}
									
								else if (eDouble(nota) >= 0 && eDouble(nota) <= 10) 	{
									m1[i] += eDouble(nota);
									loop2++;
								}
								
								else {
									System.out.println("Valor digitado inválido!");
									System.out.println("Deseja tentar inserir esta nota novamente?");
									String answer = scanner.nextLine();
									if (loop(answer)) {
										loop2++;
										m1[i] = 0;
										
									}
								}
							}
							
							if (nextBreak)
								break;						
						}
						
						if (nextBreak)
							break;
												
						System.out.println("Segunda avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						for (int i = 1;  i < m2.length; i++) {
							int loop2 = 0;
							while (loop2 == 0) {
								System.out.println("Digite a segunda nota do aluno " + i);
								nota = scanner.nextLine();
								
								if (nota.equals("Sair")) {
									System.out.println("Fim de Programa.");
									repeat++;
									nextBreak = true;
									break;
								}
									
								else if (eDouble(nota) >= 0 && eDouble(nota) <= 10) 	{
									m2[i] += eDouble(nota);
									loop2++;
								}
								
								else {
									System.out.println("Valor digitado inválido!");
									System.out.println("Deseja tentar inserir esta nota novamente?");
									String answer = scanner.nextLine();
									if (loop(answer)) {
										loop2++;
										m2[i] = 0;
										
									}
								}
							}
							
							if (nextBreak)
								break;	
						}					
					
						if (nextBreak)
							break;
						
						System.out.println("Terceira avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						for (int i = 1;  i < m3.length; i++) {
							int loop2 = 0;
							while (loop2 == 0) {
								System.out.println("Digite a terceira nota do aluno " + i);
								nota = scanner.nextLine();
								
								if (nota.equals("Sair")) {
									System.out.println("Fim de Programa.");
									repeat++;
									nextBreak = true;
									break;
								}
									
								else if(eDouble(nota) >= 0 && eDouble(nota) <= 10) 	{
									m3[i] += eDouble(nota);
									loop2++;
								}
								
								else {
									System.out.println("Valor digitado inválido!");
									System.out.println("Deseja tentar inserir esta nota novamente?");
									String answer = scanner.nextLine();
									if (loop(answer)) {
										loop2++;
										m3[i] = 0;
										
									}
								}
							}
							
							if (nextBreak)
								break;	
						}
						
						if (nextBreak)
							break;
						
						
						System.out.println("Quarta avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						for (int i = 1;  i < m4.length; i++) {
							int loop2 = 0;
							while (loop2 == 0) {
								System.out.println("Digite a quarta nota do aluno " + i);
								nota = scanner.nextLine();
								
								if (nota.equals("Sair")) {
									System.out.println("Fim de Programa.");
									repeat++;
									nextBreak = true;
									break;
								}
									
								else if (eDouble(nota) >= 0 && eDouble(nota) <= 10) 	{
									m4[i] += eDouble(nota);
									loop2++;
								}
								
								else {
									System.out.println("Valor digitado inválido!");
									System.out.println("Deseja tentar inserir esta nota novamente?");
									String answer = scanner.nextLine();
									if (loop(answer)) {
										loop2++;
										m4[i] = 0;
										
									}
								}
								
							}
							
							if (nextBreak)
								break;	
								
							
						}
						
						menu1++;
						break;
						
					case 3:
						System.out.println("Fim de Programa.");
						repeat ++;
						nextBreak = true;
						break;
				
					default:
						System.out.println("Opção inválida tente novamente!!");
						break;
				}
				
				if (nextBreak)
					break;
			}
		
			if (nextBreak)
				break;
			
			//menu 2
			int menu2 = 1;
			System.out.println("Escolha um opção: ");
			System.out.println("1 - Exibir média anual de cada aluno");
			System.out.println("2 - Exibir média da turma");
			System.out.println("3 - Exibir média de um aluno específico");
			System.out.println("4 - Voltar para o menu anterior");
			
			do {				
				op = scanner.nextLine();
				int option2 = eInteger(op);
				
				
				double mediaAlunos[] = new double [41];
				double sum = 0;
				double mediaTurma = 0;
				
				if (option2 != 4) {
					for (int i = 1; i < 41; i++) { // Calcula a média de cada aluno
						mediaAlunos[i] = (m1[i] + m2[i] + m3[i] + m4 [i]) / 4;
					}	
				}
				
				switch (option2){
					case 1:
						System.out.println("A média de cada aluno: ");
						for (int i = 1; i < 41; i++) {
							System.out.println("Aluno " + i);
							System.out.printf(" %.2f\n", mediaAlunos[i]);
						}
						menu2++;
						break;
						
					case 2:
						for(int i2 = 1; i2 < mediaAlunos.length; i2++){
					        sum = sum +  mediaAlunos[i2];
						}
						mediaTurma = sum / 40;
						System.out.println("A média da turma é: ");
						System.out.printf(" %.2f\n", mediaTurma);
						menu2++;
						break;
					
					
					case 3:
						int aluno = 0;
						int selectThis = 0;
						
						while (selectThis == 0) {
							System.out.println("Digite o número do aluno desejado: ");
							op = scanner.nextLine();
							aluno = eInteger(op);
							if (aluno > 0 && aluno < 41) {						
								System.out.printf("A média do aluno %d é: %.2f \n", aluno, mediaAlunos[aluno]);
								menu2++;
								break;
							}
							
							else {
								System.out.println("Aluno inexistente!");
								System.out.println("Deseja tentar novamente?");
								String answer = scanner.nextLine();
								if (loop(answer))
									selectThis++;
								
							}
						}
						break;
						
						
						
					
					case 4:
						repeat = 0;
						menu2++;
						break;
						
					default: 
						System.out.println("Opção inválida!");
						menu2 = 0;
						break;
				}
				
				if (option2 >= 0 && option2 < 4) {
					newOption = true;
					System.out.println("Deseja continuar(s/n)? ");
					int v = 0;
					String restart = scanner.nextLine();
					while (v == 0) {
					
						if (loop(restart)) {
							System.out.println("Fim de Programa.");
							v++;
							repeat++;
						}
					
						else 
							v++;
					}
				}
				
			}while (menu2 == 0);		
					
		}
			
	}
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Joanderson Pereira Olá. Apenas vou apresentar uma forma de resolver seu problema, que é fazendo uso de outros métodos 

Não me atentei a lógica. Essa parte vou deixar contigo,ok?

Mas vai ver pelo código que você pode perfeitamente criar um método para o menu 1 e outro para o menu 2 e assim por diante, deixando seu código mais organizado e fácil de entender 

import java.util.Scanner;
import java.util.Random;

public class Aplicacao {

    private static Scanner scanner = new Scanner(System.in);
    private static Random random = new Random();
    private static double m1[] = new double[40];
    private static double m2[] = new double[40];
    private static double m3[] = new double[40];
    private static double m4[] = new double[40];
    private static double start = 0;
    private static double end = 10;

    public static void preencherNotas() {

        for (int i = 0; i < m1.length; i++) {
            m1[i] += start + (random.nextDouble() * (end - start));
        }
        for (int i = 0; i < m2.length; i++) {
            m2[i] += start + (random.nextDouble() * (end - start));
        }
        for (int i = 0; i < m3.length; i++) {
            m3[i] += start + (random.nextDouble() * (end - start));
        }
        for (int i = 0; i < m4.length; i++) {
            m4[i] += start + (random.nextDouble() * (end - start));
        }
    }

    public static double eDouble(String str) {
        double valid;
        try {
            str = str.replace(",", ".");
            valid = Double.parseDouble(str);

        } catch (NumberFormatException e) {
            valid = 121;
        }
        return valid;
    }

    public static int eInteger(String str) {
        int valid;
        try {
            valid = Integer.parseInt(str);
        } catch (NumberFormatException e) {
            valid = 121;
        }
        return valid;
    }

    public static boolean loop(String restart) { // menu sim ou não

        char temp = 'd';
        boolean end = false;

        while (temp != 's') { // O loop só é quebrado se o usuário entrar com 's'ou 'n'
            if (restart.length() > 1 || restart.equalsIgnoreCase(""))
                restart = "p";
            temp = restart.charAt(0);

            if (temp == 'n') {
                end = true; // encerra o programa
                break;
            } else if (temp != 's') {
                System.out.println("Opção inválida!!");
                restart = scanner.nextLine();
            }
        }
        return end;
    }

    public static void main(String[] args) {

        boolean newOption = false;

        System.out.println("Bem vindo ao Medianator 4000!!!"); // Boas vindas
        System.out.println("Tecle [ENTER] para continuar: ");
        String enter = "nada";

        while (!enter.equals("")) {

            enter = scanner.nextLine();// vai ler o que o usuário digitar
            // O loop só é quebrado se o usuário entrar com \n
            if (enter.equals(""))
                break;
        }

        int repeat = 0;// loop

        while (repeat == 0) {

            boolean nextBreak = false;

            // menu 1
            System.out.println("Escolha a opção desejada: ");

            if (newOption)
                System.out.println("0 - Utilizar banco de dados existente ");

            System.out.println("1 - Gerar novo banco de dados");
            System.out.println("2 - Inserir novos dados");
            System.out.println("3 - Sair");
            String op = "e";

            int menu1 = 0;

            while (menu1 == 0) {
                op = scanner.nextLine();
                int option = eInteger(op);
                if (!newOption && option == 0)
                    option = 121;

                switch (option) {
                case 0:
                    menu1++;
                    break;
                case 1: // As médias são preenchidas com números aleatórios

                    // Aqui apenas chama o método para preencher as notas

                    preencherNotas();

                    menu1++;
                    break;
                case 2:
                    String nota = "j";
                    System.out.println("Primeira avaliação.");
                    System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
                    
                    
    // Restante do código                

Qualquer dúvida é só perguntar

Não vejo necessidade de iniciar seus for como o valor 1, pois dessa forma a posição de índice 0 do array ficará vazia 

E desculpa a demora em responder 😉

adicionado 23 minutos depois

Veja apenas uma forma que fiz rapidinho aqui para colocar o menu 2 em um método:

public static int menuDois() {

    String opcao;
    System.out.println("Escolha um opção: ");
    System.out.println("1 - Exibir média anual de cada aluno");
    System.out.println("2 - Exibir média da turma");
    System.out.println("3 - Exibir média de um aluno específico");
    System.out.println("4 - Voltar para o menu anterior");

    opcao = scanner.next();
    int option = eInteger(opcao);

    return option;
}

E aí fazer algo assim para apresentar o menu:

// tira a definição dessas variáveis do loop
int menu2 = 1;
double mediaAlunos[] = new double[40];
double sum = 0;
double mediaTurma = 0;
int option2;
String restart;

// Calcula a média de cada aluno
for (int i = 0; i < 40; i++) { 
    mediaAlunos[i] = (m1[i] + m2[i] + m3[i] + m4[i]) / 4;
}

do {

    option2 = menuDois(); // Aqui apresenta o menu 2

    switch (option2) {

Só que aí você vai perceber que entra o problema de ler dados do teclado usando a classe Scanner, que seria a "sujeira no buffer do teclado"

São muitas leituras via teclado e a classe Scanner não é recomendada nesse caso

Se quiser saber mais a respeito disso recomendo esse vídeo (recomendo mesmo)

Limpar o Buffer do teclado

A aula do vídeo é referente ao C, mas o mesmo princípio se aplica ao Java

 

Uma forma simples de resolver o problema seria criar um método para ler um valor inteiro (por exemplo):

// Aqui não estou tratando excessões
public static int readInt(Scanner scanner) {

    String str = scanner.next();

    return Integer.parseInt(str);
}

E assim ler os valores dessa forma:

int opcao;
// ....
opcao = readInt(scanner);

Que é basicamente ler um valor (inteiro ou ponto flutuante) como uma String e fazer a conversão para p tipo desejado

Seria algo assim. Só estou passando a ideia de dividir seu código em métodos para uma melhor apresentação do mesmo

O ideal mesmo seria fazer esse código de forma orientada a objetos

Link para o comentário
Compartilhar em outros sites

Fiz o que você disse, o que estava faltando mesmo era deixar as variáveis acessíveis a partir da classe (algo que eu não sabia).

Quando o método main reexecutava linhas como essas:

//números aleatórios
double m1[] = new double [41];
double m2[] = new double [41];
double m3[] = new double [41];
double m4[] = new double [41];

Ele redefinia seus valores como zero, agora elas são declaradas antes da função main, mantendo dessa forma o valores definidos na primeira vez.

 

Sobre a questão do array 0 está vazio, como são 40 alunos (1 - 40) quis deixar o índice do vetor correspondendo à posição do aluno. Mas eu corrigi isso adicionando um (i + 1) na saída.

 

Criar outros métodos ajudou bastante, porém não vi necessidade de criar novos métodos para o menu 2.

 

Prometo da uma olhada nesse vídeo que me recomendastes.

 

Segue o código corrigido a seguir:

import java.util.Scanner;
import java.util.Random;
public class Quest05 {
	
	private static Scanner scanner = new Scanner (System.in);
	
	//números aleatórios
	private static double m1[] = new double [40];
	private static double m2[] = new double [40];
	private static double m3[] = new double [40];
	private static double m4[] = new double [40];
	private static double start = 0;
	private static double end = 10;
	private static int repeat = 0;//loop
	private static boolean nextBreak = false;
	
	
	//preencher notas
	public static void preencherNotas() { //new Random().nextDouble()
		for (int i = 0;  i < m1.length; i++) { //double aleatório de 0 - 1;
			
			m1[i] = start + (new Random().nextDouble() * (end - start));
				
		}
		
		for (int i = 0;  i < m2.length; i++) {
			
			m2[i] = start + (new Random().nextDouble() * (end - start));
			
		}
		
		for (int i = 0;  i < m3.length; i++) {
			
			m3[i] = start + (new Random().nextDouble() * (end - start));
			
		}
		
		for (int i = 0;  i < m4.length; i++) {
			
			m4[i] = start + (new Random().nextDouble() * (end - start));
			
		}
	}
	
	
	
	public static double eDouble(String str) {
		double valid;
		try {	
			str = str.replace(",", ".");
			valid = Double.parseDouble(str);
		
		}
		catch (NumberFormatException e) {
			valid = 121;
		}
		return valid;
		
	}
	
	public static int eInteger(String str) {
		int valid;
		try {	
			
			valid = Integer.parseInt(str);
		
		}
		catch (NumberFormatException e) {
			valid = 121;
		}
		return valid;
		
	}
	
	public static boolean loop(String restart) { // menu sim ou não
		
		char temp = 'd';
		boolean end = false;
		
		while (temp != 's') {  //O loop só é quebrado se o usuário entrar com 's'ou 'n'
			
			if (restart.length() > 1 || restart.equalsIgnoreCase("")) 
				restart = "p";
				
			temp = restart.charAt(0);
				
			if (temp == 'n') {
				end = true; //encerra o programa
				break;
			}	
			else if (temp != 's') {
				System.out.println("Opção inválida!!");
				restart = scanner.nextLine();
			}
				
		}
		return end;
	}
	
	//receber notas
	public static void receberNotas(double m[]) {
		
		nextBreak = false;
		for (int i = 0;  i < m.length; i++) {
			String nota = "j";
			int loop2 = 0;
			while (loop2 == 0) {
				System.out.println("Digite a primeira nota do aluno " + (i + 1));
				nota = scanner.nextLine();
				
				if (nota.equals("Sair")) {
					System.out.println("Fim de Programa.");
					repeat++;
					nextBreak = true;
					break;
				}
					
				else if (eDouble(nota) >= 0 && eDouble(nota) <= 10) 	{
					m[i] += eDouble(nota);
					loop2++;
				}
				
				else {
					System.out.println("Valor digitado inválido!");
					System.out.println("Deseja tentar inserir esta nota novamente?");
					String answer = scanner.nextLine();
					if (loop(answer)) {
						loop2++;
						m[i] = 0;
						
					}
				}
			}
			
			if (nextBreak)
				break;						
		}
		
		
	}
	
	public static void main(String[] args) {
	
		boolean newOption = false;
		
		System.out.println("Bem vindo ao Medianator 4000!!!"); // Boas vindas
		System.out.println("Tecle [ENTER] para continuar: ");
     	String enter = "nada";
     	  	
		while (!enter.equals("")) {
				
				enter = scanner.nextLine();//vai ler o que o usuário digitar
				//O loop só é quebrado se o usuário entrar com \n
				if (enter.equals(""))
					break;
		}	
		
		
		
		while (repeat == 0) {
			
			nextBreak = false;
			
			//menu 1
			System.out.println("Escolha a opção desejada: ");
			
			if (newOption)
				System.out.println("0 - Utilizar banco de dados existente ");
			
			System.out.println("1 - Gerar novo banco de dados");
			System.out.println("2 - Inserir novos dados");
			System.out.println("3 - Sair");
			String op = "e";
			
			int menu1 = 0;
			
			while (menu1 == 0) {
				op = scanner.nextLine();
				int option = eInteger(op);
				if (!newOption && option == 0)
					option = 121;
							
				
				
				switch (option) {
					case 0:
						menu1++;
						break;
						
					case 1: //As médias são preenchidas com números aleatórios
						
						preencherNotas();
						menu1++;
						break;
						
					case 2:// O usuário insere as notas de cada media
						
					
						System.out.println("Primeira avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						
						receberNotas(m1);
						
						if (nextBreak)
							break;
						else 
							System.out.println(nextBreak);
												
						System.out.println("Segunda avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");

						receberNotas(m2);
					
						if (nextBreak)
							break;
						
						System.out.println("Terceira avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						
						receberNotas(m3);
												
						if (nextBreak)
							break;
						
						
						System.out.println("Quarta avaliação.");
						System.out.println("Digite 'Sair' a qualquer momento para encerrar a aplicação.");
						
						receberNotas(m4);
						
						menu1++;
						break;
						
					case 3:
						System.out.println("Fim de Programa.");
						repeat ++;
						nextBreak = true;
						break;
				
					default:
						System.out.println("Opção inválida tente novamente!!");
						break;
				}
				
				if (nextBreak)
					break;
			}
		
			if (nextBreak)
				break;
			
			//menu 2
			int menu2 = 1;
			System.out.println("Escolha um opção: ");
			System.out.println("1 - Exibir média anual de cada aluno");
			System.out.println("2 - Exibir média da turma");
			System.out.println("3 - Exibir média de um aluno específico");
			System.out.println("4 - Voltar para o menu anterior");
			
			do {				
				op = scanner.nextLine();
				int option2 = eInteger(op);
				
				
				double mediaAlunos[] = new double [40];
				double sum = 0;
				double mediaTurma = 0;
				
				if (option2 != 4) {
					for (int i = 0; i < 40; i++) { // Calcula a média de cada aluno
						mediaAlunos[i] = (m1[i] + m2[i] + m3[i] + m4 [i]) / 4;
					}	
				}
				
				switch (option2){
					case 1:
						System.out.println("A média de cada aluno: ");
						for (int i = 0; i < 40; i++) {
							System.out.println("Aluno " + (i + 1));
							System.out.printf(" %.2f\n", mediaAlunos[i]);
						}
						menu2++;
						break;
						
					case 2:
						for(int i2 = 0; i2 < mediaAlunos.length; i2++){
					        sum = sum +  mediaAlunos[i2];
						}
						mediaTurma = sum / 40;
						System.out.println("A média da turma é: ");
						System.out.printf(" %.2f\n", mediaTurma);
						menu2++;
						break;
					
					
					case 3:
						int aluno = 0;
						int selectThis = 0;
						
						while (selectThis == 0) {
							System.out.println("Digite o número do aluno desejado: ");
							op = scanner.nextLine();
							aluno = eInteger(op);
							if (aluno > 0 && aluno <= 40) {						
								System.out.printf("A média do aluno %d é: %.2f \n", aluno, mediaAlunos[aluno - 1]);
								menu2++;
								break;
							}
							
							else {
								System.out.println("Aluno inexistente!");
								System.out.println("Deseja tentar novamente?");
								String answer = scanner.nextLine();
								if (loop(answer))
									selectThis++;
								
							}
						}
						break;
						
						
						
					
					case 4:
						repeat = 0;
						menu2++;
						break;
						
					default: 
						System.out.println("Opção inválida!");
						menu2 = 0;
						break;
				}
				
				if (option2 >= 0 && option2 < 4) {
					newOption = true;
					System.out.println("Deseja continuar(s/n)? ");
					int v = 0;
					String restart = scanner.nextLine();
					while (v == 0) {
					
						if (loop(restart)) {
							System.out.println("Fim de Programa.");
							v++;
							repeat++;
						}
					
						else 
							v++;
					}
				}
				
			}while (menu2 == 0);		
					
		}
			
	}
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!