Olá pessoa, alguém consegue resolver essa problemática? fazer um programa em JAVA que leia o nome e a idade de 3 pessoas e mostre o nome da pessoa mais velha e o nome da pessoa mais nova.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá pessoa, alguém consegue resolver essa problemática? fazer um programa em JAVA que leia o nome e a idade de 3 pessoas e mostre o nome da pessoa mais velha e o nome da pessoa mais nova.
import java.util.Scanner;
public class idades {
public static void main(String[] args) {
// Variaveis
String[] nomes = new String[3];
int[] idades = new int[3];
int idadeMaisNova = 99;
String nomeDaPessoaMaisNova = "";
int idadeMaisVelha = 0;
String nomeDaPessoaMaisVelha = "";
Scanner scan = new Scanner(System.in);
// Entrada dos dados
for (int i = 0; i < 3; i++) {
System.out.println("Digite o nome: ");
nomes[i] = scan.next();
System.out.println("Digite a idade:");
idades[i] = scan.nextInt();
}
// Extraindo os idades e nomes do maior e menor idade
for (int i = 0; i < 3; i++) {
if (idades[i] < idadeMaisNova) {
idadeMaisNova = idades[i];
nomeDaPessoaMaisNova = nomes[i];
}
if (idades[i] > idadeMaisVelha) {
idadeMaisVelha = idades[i];
nomeDaPessoaMaisVelha = nomes[i];
}
}
// Exibindo os resultados
System.out.println("Pessoa Mais nova Nome: " + nomeDaPessoaMaisNova);
System.out.println("Pessoa Mais nova Idade: " + idadeMaisNova);
System.out.println("Pessoa Mais velha Nome : " + nomeDaPessoaMaisVelha);
System.out.println("Pessoa Mais velha Idade: " + idadeMaisVelha);
}
}
Consegui resolver, mas o código ficou um pouco longo. Segue:
import java.util.Scanner;
public class alura {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Digite o nome da primeira pessoa: ");
String nome1 = sc.next();
System.out.println("Digite a idade da primeira pessoa: ");
int idade1 = sc.nextInt();
System.out.println("Digite o nome da segunda pessoa: ");
String nome2 = sc.next();
System.out.println("Digite a idade da segunda pessoa: ");
int idade2 = sc.nextInt();
System.out.println("Digite o nome da terceira pessoa: ");
String nome3 = sc.next();
System.out.println("Digite a idade da terceira pessoa: ");
int idade3 = sc.nextInt();
if (idade1 < idade2 && idade1 < idade3) {
System.out.println("A pessoa mais nova é:" + nome1);
System.out.println("Com idade de: " + idade1);
}
else if (idade2 < idade1 && idade2 < idade3) {
System.out.println("A pessoa mais nova é:" + nome2);
System.out.println("Com idade de: " + idade2);
}
else if (idade3 < idade1 && idade3 < idade2) {
System.out.println("A pessoa mais nova é:" + nome3);
System.out.println("Com idade de: " + idade3);
}
if (idade1 > idade2 && idade1 > idade3) {
System.out.println("A pessoa mais velha é: " + nome1);
System.out.println("Com idade de: " + idade1);
}
else if (idade2 > idade1 && idade2 > idade3) {
System.out.println("A pessoa mais velha é: " + nome2);
System.out.println("Com idade de: " + idade2);
}
else if (idade3 > idade1 && idade3 > idade2) {
System.out.println("A pessoa mais velha é: " + nome3);
System.out.println("Com idade de: " + idade3);
}
}
}
Abraços
A varias maneira de se resolver este problema, mas o melhor é sempre o código o mais enxuto possível. O meu código por exemplo com certeza poderia ser menor ,mas com os conhecimentos que eu tenho no momento foi o que eu consegui. Vamos continuar estudando e praticando ate chegarmos na excelência.
Eu teria colocado o nome e idade num objeto da classe Pessoa que implementa Comparable
o motivo é para manter a facilidade de manter o código ou mesmo adequar se você decidir aumentar o tamanho da lista
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Pessoa implements Comparable<Pessoa> {
private String nome;
private Integer idade;
public Pessoa(String nome, Integer idade) {
this.nome = nome;
this.idade = idade;
}
public Integer getIdade() {
return this.idade;
}
public String getNome() {
return this.nome;
}
@Override
public String toString() {
return this.nome;
}
@Override
public int compareTo(Pessoa o) {
return this.getIdade() - o.getIdade();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Pessoa> lista = new ArrayList<>();
for (int i = 0; i < 3; i++) {
System.out.println("Digite o nome da primeira pessoa: ");
String nome1 = scanner.next();
System.out.println("Digite a idade da primeira pessoa: ");
Integer idade1 = Integer.parseInt(scanner.next());
lista.add(new Pessoa(nome1, idade1));
}
lista.sort(null);
System.out.println("Pessoa Mais nova Nome: " + lista.get(0));
System.out.println("Pessoa Mais nova Idade: " + lista.get(0).getIdade());
System.out.println("Pessoa Mais velha Nome: " + lista.get(2));
System.out.println("Pessoa Mais velha Idade: " + lista.get(2).getIdade());
}
Show de bola a maneira que você resolveu Gustavo, muito obrigado a todos.