Ajuda - while

Opa, e aí! então eu preciso fazer um código que descubra
A) leia o nome de 100 pessoas, 100 datas de nascimento
B) idade da pessoa baseado na data de nascimento
C) mostre quem tem o maior e a menor idade
então eu consegui fazer mostrar quem tem a menor idade, agora preciso de ajuda apenas pra mostrar quem tem a maior, sou bem iniciante no java ( bem mesmo ), então vou mandar como meu código esta até agora é agradeceria se pudessem me explicar como eu faço pra descobrir como eu coloco a maior idade

import java.util.Scanner;

public class Raiva {
public static void main(String[] args) {

	Scanner rodrigo = new Scanner(System.in);

	int lerIdade = 0;
	int maiorIdade = 0;
	int contador = 1;

	String lerNome = "";
	String maiorNome = "";
	int idade = 0;
	while (contador <= 3) {
		
		System.out.println("Digite o nome [" + contador + "]: ");
		lerNome = rodrigo.next();

		System.out.println("Digite o ano de nascimento [" + contador + "]: ");
		lerIdade = rodrigo.nextInt();

		if (maiorIdade < lerIdade) {
			maiorIdade = lerIdade;
			idade = (2018 - lerIdade);
			maiorNome = lerNome;
		}

		contador = contador + 1;
	}

	
	
	
	
	System.out.println("O nome de quem tem a menor idade é: " + maiorNome +  ", " + "sua idade é: " + idade);

}

}

package raiva;

import java.util.Scanner;

public class Raiva {

public static void main(String[] args) {

    Scanner rodrigo = new Scanner(System.in);

    int lerIdade = 0;
    int menorIdade = 0;
    int maiorIdade = 0;
    int contador = 1;

    String lerNome = "";
    String maiorNome = "";
    String menorNome = "";

    while (contador <= 3) {

        System.out.println("Digite o nome [" + contador + "]: ");
        lerNome = rodrigo.next();

        System.out.println("Digite o ano de nascimento [" + contador + "]: ");
        lerIdade = 2018 - rodrigo.nextInt();

        if ((menorIdade == 0) && (maiorIdade == 0)) {
            menorIdade = lerIdade;
            menorNome = lerNome;

            maiorIdade = lerIdade;
            maiorNome = lerNome;
        } else {
            if (lerIdade > maiorIdade) {
                maiorIdade = lerIdade;
                maiorNome = lerNome;
            }

            if (lerIdade < menorIdade) {
                menorIdade = lerIdade;
                menorNome = lerNome;
            }
        }

        System.out.println(lerIdade);

        //acrescenta + 1 na variável contador
        contador++;
    }

    System.out.println("O nome de quem tem a menor idade é: " + menorNome + ", " + "sua idade é: " + menorIdade);
    System.out.println("\nO nome de quem tem a maior idade é: " + maiorNome + ", " + "sua idade é: " + maiorIdade);
}}

Fiz da forma acima e funcionou.
O que fiz foi criar a variável idadeMenor e idadeMaior, além de nomeMenor e nomeMaior, assim guardará os menores e maiores valores com seus respectivos nomes.
Após isso entra no laço, primeiramente seto a variável lerIdade para já efetuar o cálculo do ano (2018 - ano de nascimento) e verifico se menorIdade e maiorIdade estão como 0, para que na primeira vez que efetuar o laço ele setar a idade para as variáveis acima, tendo assim um parâmetro de comparação.

1 curtida

Cara, obrigado pela ajuda, realmente estava perdido, obrigado mesmo, tmj!

Cara, se me permite, mais uma dúvida é no caso das idades serem iguais, oque eu teria que fazer?

No java existe biblioteca de datas e é só você comprar uma com a outra, tem uma nova agora no java 8, http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/.
Caso você queria fazer na mão, você pode ler como ter inteiros, ano, mês, dia.(Coloquei assim pois é a forma que você deve tratar nos ifs). Ai só você comprar primeiro o ano, se for igual cai dentro de outro if, que verifica o mês, se for igual entra no último if do dia.
Agora, caso queira usar apenas o ano como referência, se ele for igual, você não precisa fazer nada, pois já vai estar com seu valor na variável. Caso o exercício pede o último que aparecer de idade menor e maior é so fazer >= e <=.

1 curtida

O que o enunciado pede para fazer caso as idades sejam iguais?