Problema com leitura de String's

4 respostas
P

Estou com o seguinte código:

/*

  • To change this template, choose Tools | Templates

  • and open the template in the editor.
    /
    import java.util.Scanner;
    /
    *

  • @author Artur
    */
    public class ListaQuestaoNove {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here

      Scanner sc = new Scanner(System.in);

      String sexo[] = new String [15], sexoMaisAlto=null;
      float altura[] = new float [15], aux=0, menor=999999999, maior=0, somaAlturas=0, mediaAlturaMulheres;

      int i, numHomens=0, numMulheres=0;

      for(i=0; i<15; i++){

      //Obtém a altura
      
      System.out.println("\nForneça a altura em metros da pessoa: ");
      
      altura[i]= sc.nextFloat();
      
      //Obtém o sexo
      
      System.out.println("Forneça o sexo da pessoa ‘m’ ou ‘f’: ");
      
      sexo[i] = sc.nextLine();
      
      if(sexo[i].equals("m")){
               numHomens++;
           }//fim if
      
           if(sexo[i].equals("f")){
               numMulheres++;
               somaAlturas+=altura[i];
           }//fim if
      
           if(altura[i]<menor){
      
                       altura[i]=aux;
                       aux=altura[i];
                       menor=altura[i];
                               }//fim do if
      
           if(altura[i]>maior){
      
                       altura[i]=aux;
                       aux=altura[i];
                       maior=altura[i];
      
                       sexoMaisAlto=sexo[i];
                               }//fim do if
      

      }//fim do for

      mediaAlturaMulheres = somaAlturas/numMulheres;

      System.out.println("A menor altura do grupo é: "+menor);

      System.out.println("A média da altura das mulheres é: "+mediaAlturaMulheres);

      System.out.println("A número de homens é de: "+numHomens);

      System.out.println("O sexo da pessoa mais alta é: "+sexoMaisAlto);

    }

}

Ele compila sem erros! Mas quando executo não faz leitura correta da String. Sou iniciante em java, me ajudem por favor!

4 Respostas

R

achei no guj este topico

eu uso JOptionPane, para captar dados, conhece? pode usar aí ?

coments…

kenneth

E, quando puder, por favor, leia este topico:

http://guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Abraco.

P

Obrigado Raghy, deu certo aqui com JOptionPane! Valeu.

edumoreira

pascualote,

A classe Scanner, não me pergunte porque, precisa de um nextLine() após a leitura de um double, float ou inteiro, no caso sua classe fica assim.

altura[i]= sc.nextFloat();

// Linha adicionada por algum motivo exotérico.
sc.nextLine();

//Obtém o sexo
System.out.println("Forneça o sexo da pessoa 'm' ou 'f': ");
sexo[i] = sc.nextLine();

Se alguem souber o motivo disso e quiser compartilhar este grande segredo do universo…shaushausua

flws… :arrow:

Criado 17 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 4
Participantes 4