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);
}
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.
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 <=.