Problema com leitura de String's

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!

achei no guj este topico

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

coments…

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.

Obrigado Raghy, deu certo aqui com JOptionPane! Valeu.

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: