Duvida com o while

1 resposta Resolvido
J

Estou com duvidas em relação a um codigo, nao consigo fazer o while repetir.

O enunciado do problema é o seguinte:

Uma faculdade resolveu desenvolver um sistema para cadastrar no máximo 15 alunos em um curso de férias. No cadastro dos alunos é necessário que exista informações sobre matricula, idade e sexo. Em cada iteração o sistema deve perguntar se deseja cadastrar outro aluno, obtendo uma reposta que pode ser positiva ou negativa. O sistema deve encerrar o cadastro quando a resposta da pergunta for negativa e, nesse momento, deverá imprimir em um novo método todos os alunos cadastrados; o percentual de alunos cadastrados do sexo masculino e o percentual do sexo feminino; e a média das idades dos alunos cadastrados;

Outro problema que estou tendo é no calculo do percentual, nao sei como fazer.
Até então o meu codigo ficou assim:

package Atividade17;
import java.util.Scanner;
public class Questão4 {

public static void main(String[] args) {
	
	Scanner sc = new Scanner(System.in);
	int i = 0;
	int resp;
	do {
		System.out.println("Deseja cadastrar novo aluno? [1]Sim [2]Não");
		resp = sc.nextInt();
		String[] matricula = matricula();
		int[] idade = idade();
		String[] sex = sex();
		double med = med(idade);
		print(matricula,idade,sex,med);	
		i++;
		
	}while (resp == 2);
}

private static String[] matricula(){
	Scanner ler = new Scanner(System.in);
	String[] matricula = new String[5];
	for (int i = 0; i < matricula.length; i++) {
		System.out.println("Digite o nome do " + (i+1) + "o. aluno: ");
		matricula[i] = ler.next();
	}
	return matricula;
}

private static int[] idade(){
	Scanner read = new Scanner(System.in);
	int[] idade = new int[5];
	for (int i = 0; i < idade.length; i++) {
		System.out.println("Digite a idade do " + (i+1) + "o. aluno: ");
		idade[i] = read.nextInt();
	}
	
	return idade;
}

private static String[] sex(){
	Scanner sc1 = new Scanner(System.in);
	String[] sex = new String[5];
	for (int i = 0; i < sex.length; i++) {
		System.out.println("Digite o sexo do " + (i+1) + "o. aluno: ");
		sex[i] = sc1.next();
	}
	
	return sex;
}

private static double perc(String[] sex){
	int auxf=0,soma = 0,auxm=0;
	double perc =0;
	
	perc = (auxf * 100)/sex.length;
	
	
	return perc;
}

private static double med(int[] idade){
	double som=0, med=0;
	
	for (int i = 0; i < idade.length; i++) {
		som = idade[i] + som;
	}
	med = som/idade.length;
	return med;
}

private static void print(String[] matricula, int[] idade, String[] sex, double med){
	for (int i = 0; i < sex.length; i++) {
		System.out.println("Matricula: " + (matricula[i]) + ", " + "idade: " + (idade[i]) + ", " + "Sexo: " + (sex[i]));	
	}
	
	System.out.println("Percentual femino: ");
	System.out.println("Percentual masculino: ");
	System.out.println("Media das idades dos alunos: " + med);
}
}

por favor me ajudem, nao sei mais como resolver isso.

1 Resposta

wldomiciano
Solucao aceita

2 é a resposta para “Não”, então deveria ficar assim:

while( resp != 2 );

Que quer dizer: “EXECUTE o seguinte código ENQUANTO resp for diferente de 2”

Criado 4 de junho de 2016
Ultima resposta 4 de jun. de 2016
Respostas 1
Participantes 2