Preciso de uma ajuda ,
No programa que eu estou fazendo o usuario deve colocar somente valores acima de 0 (para a altura )
Só que nao estou conseguindo
int Jogadores = 10;
String [] nome = new String [Jogadores];
for(int i = 0 ; i < Jogadores ; ++i){
System.out.println("Insira o nome do " + (i+1) + “° jogador .”);
nome [i] = entrada.next();
}
double [] Altura = new double [Jogadores];
for(int i = 0; i < Jogadores; ++i){
System.out.println("Insira a altura do " + (i+1) + “° jogador .”);
Altura [i] = entrada.nextDouble();
}
System.out.println("=========== TIME DE BASQUETE ===========");
for(int i =0; i< Jogadores;i++){
System.out.println(nome[i] +" ---- “+ Altura [i]+” m");
}
System.out.println("A media das alturas dos jogarores é : ");
double media ;
media = Altura [0] + Altura [1] + Altura [2] +Altura [3] +Altura [4] +Altura [5] +Altura [6] +Altura [7] +Altura [8] +Altura [9] ;
System.out.println(media/10);
Preciso que os valores que o usuario coloque seja maior a 0 na altura
if (alturaDigitada > 0) {
// está certo, faça o que tem que fazer
} else {
// não está certo, pede para informar novamente
}
1 curtida
Oi boa tarde , tentei colocar no codigo mas esta dando erro …
Se não postar o código, não dá pra ver o que você errou.
Scanner entrada = new Scanner (System.in);
int Jogadores = 10;
String [] nome = new String [Jogadores];
for(int i = 0 ; i < Jogadores ; ++i){
System.out.println("Insira o nome do " + (i+1) + “° jogador .”);
nome [i] = entrada.next();
}
double [] Altura = new double [Jogadores];
for(int i = 0; i < Jogadores; ++i){
if(Altura.length>0){
System.out.println("Insira a altura do " + (i+1) + “° jogador .”);
Altura [i] = entrada.nextDouble();
}else(Altura.length<0){
System.out.println(“Reensira o valor”);
Altura [i] = entrada.nextDouble();
}
System.out.println("=========== TIME DE BASQUETE ===========");
for(int i =0; i< Jogadores;i++){
System.out.println(nome[i] +" ---- “+ Altura [i]+” m");
}
System.out.println("A media das alturas dos jogarores é : ");
double media ;
media = Altura [0] + Altura [1] + Altura [2] +Altura [3] +Altura [4] +Altura [5] +Altura [6] +Altura [7] +Altura [8] +Altura [9] ;
System.out.println(media/10);
São só alguns erros de lógica.
Você tem as seguintes instruções no seu código:
int Jogadores = 10;
// algumas linhas depois
double [] Altura = new double [Jogadores];
Depois você faz if (Altura.length > 0) {
Se o array altura foi inicializado com 10 posições, o length
dele sempre vai ser > 0
.
Veja o exemplo abaixo:
import java.io.PrintStream;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.executar();
}
private final Scanner entrada = new Scanner(System.in);
private final PrintStream saida = System.out;
public void executar() {
int jogadores = 10;
String[] nomes = new String[jogadores];
double[] alturas = new double[jogadores];
for (int i = 0; i < jogadores; i++) {
nomes[i] = lerNome(i + 1);
alturas[i] = lerAltura(i + 1);
}
saida.println("=========== TIME DE BASQUETE ===========");
for (int i = 0; i < jogadores; i++) {
saida.println(nomes[i] + " ---- " + alturas[i] + " m");
}
double media = media(alturas);
saida.println("A media das alturas dos jogarores é : " + media + " m");
}
private String lerNome(int jogador) {
saida.println("Insira o nome do " + jogador + "° jogador .");
return entrada.nextLine();
}
private double lerAltura(int jogador) {
while (true) {
saida.println("Insira a altura do " + jogador + "° jogador .");
double altura = Double.parseDouble(entrada.nextLine());
if (altura > 0) {
return altura;
}
saida.println("Reinsira o valor");
}
}
private double media(double[] valores) {
double soma = 0;
for (double valor : valores) {
soma += valor;
}
double quantidade = valores.length;
return soma / quantidade;
}
}