Preciso de ajuda na hora em que o usuario erra o valor

5 respostas
Lucca_Lourencao

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

5 Respostas

staroski
if (alturaDigitada > 0) {
    // está certo, faça o que tem que fazer
} else {
    // não está certo, pede para informar novamente
}
Lucca_Lourencao

Oi boa tarde , tentei colocar no codigo mas esta dando erro …

staroski

Se não postar o código, não dá pra ver o que você errou.

Lucca_Lourencao

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);
staroski

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;
    }
}
Criado 22 de maio de 2019
Ultima resposta 22 de mai. de 2019
Respostas 5
Participantes 2