Erro no if do metodo bolha

36 respostas
olivercld

Olá Tudo bem…
bom estou com problema aqui não sei oque pode ser ja tentei arrumar no metodo bolha que mais tarde vou usa-lo para ordenar por altura esta dando um erro e nao consigo descobrir vou postar as duas classes eu quero dar continuidade mais com este erro nao consigo desde já agradeço a ajuda.

public class Pessoa {

	String nome;
	String altura;
	
	public Pessoa(String n, String a) {
		this.nome = n;
		this.altura = a;
		
	}
	public String Altura(){
		return altura; 
		
	}
	//metodo mostrar pessoa
	//public void mostrarPessoa(){
		//System.out.println("Nome: " + nome + "Altura" +altura);
	//}
	public void mostrarPessoa() {
		System.out.println("Nome: " + nome + "Altura" +altura);
		
	}
}
//import java.util.LinkedList;
//import java.util.List;

public class VetorDePessoas {

	// public Pessoa[] pessoa = new LinkedList<Pessoa>();
	Pessoa[] pessoa;
	private int i = 0;

	//construtor
	/**
	 * @param tamanhoMax
	 */
	public VetorDePessoas(int tamanhoMax) {
		pessoa = new Pessoa[tamanhoMax];

	}

	// metodo insere
	public void inserir(Pessoa pessoas) {
		if (i < pessoa.length) {
			pessoa[i++] = pessoas;
		}
	}

	public void listagem() {
		for (int aux = 0; aux < i; aux++) {
			// System.out.println("Vetor [" +pessoa[aux].nome);
			((Pessoa) pessoa[aux]).mostrarPessoa();

		}
	}

	// metodo bolha
	public void bolha() {
		int out, in, i = 0;
		// ordena o valor ate o começo do vetor i-1 que significa que nao esta
		// zerado o decremento
		for (out = i - 1; out > 0; out--) {
			for(in = 0; in < out; in++){
				if(pessoa[in] > pessoa[in + 1]){
					
					Pessoa aux = pessoa[in];
					pessoa[in] = pessoa[in +1];
					pessoa[in +1] = aux;
				}
			}
			

		}
	}

36 Respostas

mauricioadl

qual é o erro que da?

fernandosavio
if(pessoa[in] > pessoa[in + 1]) /????
//Como o compilador vai adivinhar que uma pessoa a maior que a outra?
// Ou você implementa a interface Comparable ou você compara algum atributo da sua classe (altura ou nome),  não pode comparar pessoa com pessoa...
olivercld

entao fernandosavio eu coloquei dessa forma if(pessoa[in].altura > pessoa[in + 1].altura )
tambem da erro.
ou deveria fazer if(pessoa[in].altura > pessoa[in + 1].nome) ??

olivercld

não estou conseguindo tentei todas as formas ditas aqui, continua com erros

comparando por altura:

if(altura[in] > altura[in+1]){
					
					int aux = altura[in];
					altura[in] = altura[in +1];
					altura[in +1] = aux;
olivercld

Desculpem.

bom consegui fazer dessa maneira

if(pessoa[in].altura > pessoa[in+1].altura){
					
					 aux = pessoa[in];
					pessoa[in] = pessoa[in +1];
					pessoa[in +1] = aux;

mais o erro que dá e que se eu coloco int aux = pessoa diz que impossivel converter de Pessoa para int e agora que faço e porque o atributo la emcima nao esta como int ?

Corrigindo:

if(pessoa[in].altura > pessoa[in+1].altura){
					
					int aux = pessoa[in].altura;
					pessoa[in].altura = pessoa[in +1].altura;
					pessoa[in +1].altura = aux;

acabaramse os erros do if

Marcelo_de_Andrade

Tente desta maneira:

public void bolha() {
   for ( int i = 0; i &lt; ( pessoa[i].lenght ) - 1; i++ ) {

      if ( pessoa[i] &gt; pessoa[i + 1] ) {

         Pessoa aux = pessoa[i + 1];
         pessoa[i + 1] = pessoa[i];
         pessoa[i] = aux; 

      }

   }

}

Você utilizou muitas variáveis para pouca coisa.

olivercld

ok vou seguir sua dica Marcelo de Andrade

for (out = i - 1; out > 0; out--) {  
            for(in = 0; in < out; in++){ 
            if(pessoa[in].altura > pessoa[in+1].altura){  
                      
                    int aux = pessoa[in].altura;  
                    pessoa[in].altura = pessoa[in +1].altura;  
                    pessoa[in +1].altura = aux;
mais essa maneira esta errado pois acabaram se os erros

vou tentar sua dica obrigado Marcelo de Andrade

olivercld

entao brother Marcelo de Andrade tentei sua dica e da erro
no leght diz que nao podesse ser resolvido ou no e um campo

no if (pessoa[i] > pessoa[i + 1]) { diz que e perador > indefido para para o tipo trabalho.Pessoa

fernandosavio

Tá tudo muito confuso já!!!
Qual é o problema que está dando agora e qual é o código?
Me atualiza por favor…

Marcelo_de_Andrade

O exemplo que mostrei era para você implementar, você só copiou. O que você quer é comparar a altura, então modifique para:

pessoa[i].altura &gt; pessoa[i + 1].altura

E não:

pessoa[i] &gt; pessoa[i + 1]

Posta teu código modificado com o que você fez e como ficou.

olivercld

entao Brow seguinte o amigo Marcelo de Andrade me deu essa dica

public void bolha() {  
   for ( int i = 0; i < ( pessoa[i].lenght ) - 1; i++ ) {  
  
      if ( pessoa[i] > pessoa[i + 1] ) {  
  
         Pessoa aux = pessoa[i + 1];  
         pessoa[i + 1] = pessoa[i];  
         pessoa[i] = aux;   
  
      }  
  
   }  
  
}

eu fiz como tu me falou assim:

public void bolha() {
		int out, in, i = 0;
		// ordena o valor ate o começo do vetor i-1 que significa que nao esta
		// // zerado o decremento
		for (out = i - 1; out > 0; out--) {
			for (in = 0; in < out; in++) {
				if (pessoa[in].altura > pessoa[in + 1].altura) {

					int aux = pessoa[in].altura;
					pessoa[in].altura = pessoa[in + 1].altura;
					pessoa[in + 1].altura = aux;
				}
			}

		}

é dessa forma aqui embaixo acabaram os erros, entao tentei a forma que o amigo Marcelo passou, no codigodele o leght da erro e no if do codigo da como operador > indefinido pra o Trabalho.Pessoa e isso.

agora eu nao sei se continuo dou sequencia e deixo o que nao esta aparecendo o erro ou mecho no codigo que o Marcelo passou.

olivercld

ok Marcelo de Andrade entendido

fernandosavio

Se tu quiser alterar teu código e der erro é só postar o código e os erros para podermos te ajudar…

olivercld

sim sim fernandosavio valeu…

olivercld

bom seguinte o . Length esta dando um erro então comparei dessa forma e o erro não mostra mais esta errado ?

for (int i = 0; i < (pessoa[i].altura) - 1; i++) {

		 if (pessoa[i].altura > pessoa[i + 1].altura) {

		 int aux = pessoa[i + 1].altura;
		 pessoa[i + 1].altura = pessoa[i].altura;
		 pessoa[i].altura = aux;

no lugar de .lenght coloquei para .altura // o lenght daria o tamanho total do vetor seria isso ? e o altura ?

fernandosavio

Na verdade olivercld
Você precisa utilizar o length para percorrer o vetor de pessoas inteiro independente do tamanho que tenha…
Entao é importante você saber:

Pessoa[] pessoa;
//length é um atributo (variável) da estrutura vetor
System.out.println("Tamanho do vetor: " + pessoa.length);

String palavra = "abcde";
//length é um método da classe String que conta quantas letras tem a String e retorna para quem chamou
System.out.println("Tamanho da palavra: " + palavra.length());

Você usou:

//Isso  funcionaria se fosse uma matriz (vetor de vetor), pois você receberia o tamanho do vetor na posição i
System.out.println(pessoas[i].length); 

//E esse  funcionaria se fosse um vetor de Strings, retornaria o tamanho da String e não do vetor
System.out.println(pessoas[i].length()); 

//E esse sim retorna a quantidade de elementos de um vetor
System.out.println(pessoas.length);

Entendeu?

olivercld

certo estou procurando entender…
bom mudei aqui

ficou assim agora fernandosavio

na classe Pessoa adicionei o atributo public int Lenght, nao acusa mais o erro no lenght

ficou assim agora:

for (int i = 0; i < (pessoa[i].lenght) - 1; i++) {

			if (pessoa[i].altura > pessoa[i + 1].altura) {

				Pessoa aux = pessoa[i + 1];
				pessoa[i + 1] = pessoa[i];
				pessoa[i] = aux;
fernandosavio

Cara… a tua intenção é ordenar o vetor de Pessoas e para isso tu precisa do tamanho do vetor… E o tamanho do vetor se pega usando:

nomeVetor.length;
//e nao
nomeVetor[i].length;

Entao teu for ficaria assim:

for (int i = 0; i < (pessoa.lenght - 1); i++) {

Enquanto i (que igual a zero) for menor que o tamanho do vetor -1 faça …

Entendeu agora?

olivercld

haa agora entendi, a questao em si era o [i] e como vc explicou la atraz que:

ok vou proseguir aqui. cara desculpe ai incomodo.
obrigado fernandosavio

fernandosavio

Não é incômodo, o importante e que você aprenda…

olivercld

sim, Obrigado fernandosavio estou continuando aqui.

agora falta fazer a classe principal que tem a main

onde tenho que solicitar o tamanho Max do vetor

Um menu para inserir os dados, classificar e listar o vetor.

vou continuando aqui Thank

olivercld

peso ajuda novamente porque eu na classe principal nao estou conseguindo o metodo listar e o metodo bolha em cada opçao no pequeno menu.

//metodo listar
	public void listagem() {
		for (int aux = 0; aux < i; aux++) {
			 System.out.println("Vetor [" +pessoa[aux].nome +"]");
			//((Pessoa) pessoa[aux]).mostrarPessoa();
// metodo bolha
	public void bolha() {

		for (int i = 0; i < (pessoa.length - 1); i++) {

			if (pessoa[i].lenght > pessoa[i + 1].lenght) {//alterei o  codigo 

				Pessoa aux = pessoa[i + 1];
				pessoa[i + 1] = pessoa[i];
				pessoa[i] = aux;
public class ClassePrincipal {


	public static void main(String[] args) {
		Pessoa v1 = new Pessoa(null,100);
		
		Scanner entrada = new Scanner(System.in);

		int opcao;
		
		System.out.println("\n Escolha uma Opçao ");
		System.out.println("(1) Listar ");
		System.out.println("(2) Bolha ");
		opcao = entrada.nextInt();
		
		switch(opcao){
		
		case 1: 
			
			break;
		case 2:
			v1.
			
			break;
			default:
			
		}

aqui esta o problema agora ja alterei nas outras classes so nao estou conseguindo chamar na 1 opcao o metodo listar e 2 o mtodo bolha para ordenar, so consigo v1.mostrarPessoa(); so me da opacao desse metodo.

fernandosavio

Em que classe está o método bolha e o listagem ???

olivercld

Esses metodos estao dentro dessa classe: public class VetorDePessoas{ postei elas logo no começo as duas classes … public class Pessoa {

olivercld
public class Pessoa {

	String nome;
	 int[] altura;
	 public int lenght;
	
	public Pessoa(String n, int a) {
		this.nome = n;
		altura = new int[a];
		
	}
	public int Altura(){
		return altura.length; 
		
	}
	//metodo mostrar pessoa
	//public void mostrarPessoa(){
		//System.out.println("Nome: " + nome + "Altura" +altura);
	//}
	//public void mostrarPessoa() {
		//System.out.println("Nome: " + nome + "Altura" +altura);
		
	//}
}
public class VetorDePessoas {

	// public Pessoa[] pessoa = new LinkedList<Pessoa>();
	Pessoa[] pessoa;

	private int i = 0;

	// construtor
	/**
	 * @param tamanhoMax
	 */
	public VetorDePessoas(int tamanhoMax) {
		pessoa = new Pessoa[tamanhoMax];

	}

	// metodo insere
	public void inserir(Pessoa pessoas) {
		if (i < pessoa.length) {
			pessoa[i++] = pessoas;
		}
	}

	//metodo listar
	public void listagem() {
		for (int aux = 0; aux < i; aux++) {
			 System.out.println("Vetor [" +pessoa[aux].nome +"]");
			//((Pessoa) pessoa[aux]).mostrarPessoa();

		}
	}

	// metodo bolha
	public void bolha() {

		for (int i = 0; i < (pessoa.length - 1); i++) {

			if (pessoa[i].lenght > pessoa[i + 1].lenght) {

				Pessoa aux = pessoa[i + 1];
				pessoa[i + 1] = pessoa[i];
				pessoa[i] = aux;

essas duas classes

fernandosavio

Cara.. ficou muito confusa sua classe... Tem length onde nao precisava, tem vetor onde não precisa..
Eu fiz um exemplo rápido aqui para você ver...

Classe Pessoa:
public class Pessoa {
	public String nome;
	public double altura;

	public Pessoa(String nome, double altura) {
		this.nome = nome;
		this.altura = altura;
	}
}
Classe OrdenaBolha.java:
public class OrdenaBolha {

	public static void main(String args[]) {
		//Inicializa vetor de pessoas
		Pessoa[] listaPessoas = new Pessoa[]{
			new Pessoa("pessoa1",1.70),
			new Pessoa("pessoa2",1.50),
			new Pessoa("pessoa3",1.90),
			new Pessoa("pessoa4",2.00),
			new Pessoa("pessoa5",1.80)
		};
		metodoBolha(listaPessoas);  //ordena o Vetor
		imprimePessoas(listaPessoas);  //imprime o Vetor
	}

	public static void metodoBolha(Pessoa[] variasPessoas){
		for (int i = 0; i < variasPessoas.length-1; i++) {
			if (variasPessoas[i].altura > variasPessoas[i + 1].altura) {
  				Pessoa aux = variasPessoas[i + 1];
				variasPessoas[i + 1] = variasPessoas[i];
				variasPessoas[i] = aux;
			}
		}
	}

	public static void imprimePessoas(Pessoa[] muitasPessoas){
		for(int i=0 ; i<muitasPessoas.length ; i++){
			System.out.print("Nome: " + muitasPessoas[i].nome);
			System.out.println("\tAltura: " + muitasPessoas[i].altura + "m");
		}
	}
}

Você está complicando a estrutura das suas classe. Olha essas para ter uma idéia, qualquer pergunta sobre o código pode chamar!

olivercld

vou tentar aqui arrumar o codigo se nao conseguir continuo amanha obrigado fernandosavio. estou em cima disso faz horas.

olivercld

fernandosavio tentei seguir seu codigo aqui me perdi ja nao estou entendendo nada, nao consigo chamar os metodos como voçe chamou bom eu preciso fazer 3 classes : 1 classe Pessoa, 2 classeVetorDePessoas, 3 classe Principal onde contem a main.
a classe1 e so a definição da interface.

eu preciso fazer um menu para usuario escolher e hora que vou chamar o metodo para lista ou na opcao 2 para ordenarpelo metodo bolha nao da.
public class ClassePrincipal {


	public static void main(String[] args) {
		//inicializa o vetor de pessoas
		VetorDePessoas[] listapessoa = new VetorDePessoas[ ]{
			new VetorDePessoas("JOao", 1.80),
			new VetorDePessoas("Antonio", 1.65),
			new VetorDePessoas("Pessoa ", 2.00),
			new VetorDePessoas("Fullano", 1.70)
			
			
		};
		
				
				
		
		
		
		Scanner entrada = new Scanner(System.in);

		int opcao;
		
		System.out.println("\n Escolha uma Opcao ");
		System.out.println("(1) Listar ");
		System.out.println("(2) Bolha ");
		opcao = entrada.nextInt();
		
		switch(opcao){
		
		case 1:
			lis
		
			
			break;
		case 2:
		
			
			
			break;
			default:
			
		}
		
		
		
		
		
	}

}
public class VetorDePessoas {
............
public void bolha() {

		for (int i = 0; i < (variasPessoas.length - 1); i++) {

			if (variasPessoas[i].Altura > variasPessoas[i + 1].Altura) {

				Pessoa aux = variasPessoas[i + 1];
				variasPessoas[i + 1] = variasPessoas[i];
				variasPessoas[i] = aux;

public  void listaPessoas(){
		
		for(int i=0; i < variasPessoas.length; i++){
			System.out.println("\nNome "+ variasPessoas[i].Nome);
			System.out.println("\n Altura "+ variasPessoas[i].Altura);
		}
	}

a classe Pessoa nem esta sendo usada creio deu dessa forma.
de qualuqer forma muitissimo obrigado pela ajuda so estou confuso.

fuadksd
boolean swap = false;
do {
    for(int i = 0; i < vetor.length - 1; i++) {
         if(pessoa[in].altura > pessoa[in + 1].altura) {
            // faz o swap
            swap = true;
         }
    }
} while(swap);
fernandosavio

olivercld não faz sentido ter uma classe VetordePessoas… Faz mais sentido ter um vetor de objetos Pessoas…
Se você puder postar o enunciado da questão ficaria melhor de entender o que ela pede…

olivercld

aqui esta como me pediu fernandosavio

olivercld

fiz de um jeito não da erro mais não da certo faço de outro da erro aff.

fernandosavio

Muito bem cara… Me prestei a fazer para você o exercício. Mas é muito importante que você leia e tente entender o que eu fiz…

OK, vamos lá.

Classe Pessoa

/*
Criar uma classe Pessoa que armazene o nome e a altura de uma pessoa. Esta classe deverá
possuir os métodos:
construtor ? instancia o objeto com o nome e a altura da pessoa;
altura ? retorna a altura de uma pessoa;
mostra ? apresenta o nome e a altura da pessoa;
*/
public class Pessoa {
	private String nome;
	private double altura;

	public Pessoa(String nomeRecebido, double alturaRecebida) {
		this.nome = nomeRecebido;
		this.altura = alturaRecebida;
	}

	public double getAltura(){
		return this.altura;
	}

	public void mostraPessoa(){
		System.out.println("Nome: " + this.nome + "\tAltura: " + altura);
	}
}

Classe VetorDePessoas

/*
 Criar uma classe ?VetorDePessoas? que armazene um vetor de pessoas (o tamanho máximo do
vetor deve ser passado no programa principal). A classe deverá possuir os métodos:
construtor ? define o tamanho máximo do vetor;
insere ? insere uma nova pessoa no vetor;
listagem ? mostra todas as pessoas cadastradas no vetor;
classifica - utiliza um dos métodos de classificação para ordenar o vetor pela altura das pessoas.
 */

public class VetorDePessoas {
	private int tamanhoMax;
	public int ultimoInserido = 0;
	private Pessoa[] listaPessoas;

	public VetorDePessoas(int tamanho) {
		this.tamanhoMax = tamanho;
		listaPessoas = new Pessoa[tamanho];
	}
	public void insere(Pessoa p){
		if(ultimoInserido < tamanhoMax){
			listaPessoas[ultimoInserido] = p;
			ultimoInserido++;
		}
	}
	public void listagem(){
		for(int i=0 ; i<ultimoInserido ; i++){
			listaPessoas[i].mostraPessoa();
		}
	}

	public void ordena(){
		boolean houveTroca;
		do {
			houveTroca = false;
		    for(int i = 0; i < ultimoInserido-1; i++) {
		         if(listaPessoas[i].getAltura() > listaPessoas[i+1].getAltura()) {
		            Pessoa aux = listaPessoas[i];
		            listaPessoas[i] = listaPessoas[i+1];
		            listaPessoas[i+1] = aux;
		            houveTroca = true;
		         }
		    }
		} while(houveTroca);  //Se percorreu o vetor inteiro e não precisou trocar é porque já está ordenado
	}
}

Classe Principal

/**
Criar um programa principal que mostre ao usuário:
No início do programa solicitar o tamanho máximo do vetor
Um menu para inserir os dados, classificar e listar o vetor
 */
import java.util.Scanner;

public class Principal {

	public static void main(String args[]) {
		System.out.print("Digite o tamanho do vetor: ");
		Scanner in = new Scanner(System.in);
		int tam = in.nextInt();
		VetorDePessoas vetPes = new VetorDePessoas(tam);
		int opcao;
		do{
			System.out.print("\n1-Inserir dados\n2-Ordenar dados\n3-Mostrar dados\nOpcao: ");
			opcao = in.nextInt();

			switch(opcao){
				case 1:
					vetPes.ultimoInserido = 0;
					for(int i=0 ; i<tam ; i++){
						System.out.print((i+1)+"-Digite o nome: ");
						String nome = in.next();
						System.out.print((i+1)+"-Digite a altura: ");
						double altura = in.nextDouble();
						vetPes.insere(new Pessoa(nome,altura));
					}
					break;
				case 2:
					vetPes.ordena();
					break;
				case 3:
					vetPes.listagem();
					break;
				case 0:
					break;
				default:
					System.out.print("Opcao nao existe!");
					break;
			}
		}while(opcao!=0);
	}
}

Tenta entender o que eu fiz e qualquer coisa pergunta!

olivercld

ok eu vou comentar, tentar explicar colocando comentarios no codigo seu ai posto aqui denovo e tu me fala se esta certo como comentei da maneira que entendi ok valeu fernandosavio obrigadão fera.

olivercld
public class Pessoa {
	private String nome; // atributos da classe
	private double altura;

	/**
	 * @author fernandosavio 
	 * @param nomeRecebido
	 * @param alturaRecebida
	 */
	// construtor, ele recebe como parametro nomeRecebido e alturaRecebida
	public Pessoa(String nomeRecebido, double alturaRecebida) {
		this.nome = nomeRecebido;
		this.altura = alturaRecebida;
	}

	//public String getNome() {
		//return nome;
	//}

	//public void setNome(String nome) {
	//	this.nome = nome;
	//}

	//public void setAltura(double altura) {
	//	this.altura = altura;
	//}

	// metodo para retorna a altura
	public double getAltura() {
		return this.altura;
	}

	// metodo para mostrar os nomes e a altura das pessoas
	public void mostraPessoa() {
		System.out.println("Nome: " + this.nome + "\tAltura: " + altura);
	}
}
public class VetorDePessoas {
	// atributos publico e privado
	private int tamanhoMax; // definindo tamanho maximo
	public int ultimoInserido = 0; // ??
	private Pessoa[] listaPessoas; // cria se o vetor

	/**
	 * @author fernandosavio
	 * @param tamanho
	 */
	// construtor
	public VetorDePessoas(int tamanho) {
		this.tamanhoMax = tamanho;
		listaPessoas = new Pessoa[tamanho];// objeto ListasPessoas = new Pessoa
	}

	// metodo insere para inserir uma lista de pessoas no meu vetor
	public void insere(Pessoa p) { // Pessoa p e criada um novo parametro p
		if (ultimoInserido < tamanhoMax) { // se ultimoinserido menor que
											// tamanho max
			listaPessoas[ultimoInserido] = p; // ??
			ultimoInserido++; // ultimo a ser inserido incrementa
		}
	}

	// metodo listagem para listar as pessoas com nome a altura
	public void listagem() {
		for (int i = 0; i < ultimoInserido; i++) { // i de 0 ate < que o ultimo
													// elemento
			listaPessoas[i].mostraPessoa();// listaPessoas na posicao i aponta,
											// recebe metodo mostraPessoa
		}
	}

	// metodo bolha ordena o vetor de pessoas por altura
	public void ordena() {
		boolean houveTroca;// boolen para verificar se e verdadeiro ou falso
		do {
			houveTroca = false;// verifica se houve troca no caso e falso

			for (int i = 0; i < ultimoInserido - 1; i++) {
				// para int i de 0 ate i menor que ultimo -1, o ultimo -1
				// significa que e o ultimo elemento.?
				if (listaPessoas[i].getAltura() > listaPessoas[i + 1]
						.getAltura()) {
					// se listaPessoas na posicao tal "compara pelo metodo
					// altura", for maior que listaPessoas na posicao i + 1 que
					// a segunda posicao
					// se for maior entao troca
					Pessoa aux = listaPessoas[i];// vetor Pessoa aux armazena o
													// valor na posicao i caso
													// for maior para trocar
					listaPessoas[i] = listaPessoas[i + 1];
					listaPessoas[i + 1] = aux;
					houveTroca = true;//mostra que houve a trova e verdadeira 
				}
			}
		} while (houveTroca); // Se percorreu o vetor inteiro e não precisou
								// trocar é porque já está ordenado
	}
}
/**
 * @author  fernandosavio 
 */
import java.util.Scanner;

public class ClassePrincipal {

	public static void main(String args[]) {
		// pede para usuario digitar um tamanho do vetor
		System.out.print("Digite o tamanho do vetor: ");
		Scanner in = new Scanner(System.in);// le do teclado
		int tam = in.nextInt();// tam recebe valor que usuario digitou
		// cria o vetor VetorDePessoas vetPes que recebe como valor tam o que
		// usuario digitou
		VetorDePessoas vetPes = new VetorDePessoas(tam);
		int opcao;
		do {//faz o analise enquanto opcao for diferente de zero 
			System.out
					.print("\n1-Inserir dados\n2-Ordenar dados\n3-Mostrar dados\nOpcao: ");
			opcao = in.nextInt();

			switch (opcao) {
			case 1:
				vetPes.ultimoInserido = 0;// o objeto vetPes aponta, recebe o
											// ultimoInserido ??
				for (int i = 0; i < tam; i++) {
					// para int i ate menor que tamaho que usuario digitou
					System.out.print((i + 1) + "-Digite o nome: ");// i + 1
					// incrementa ate chegar ao tamanho que usuario digitou no tam
					String nome = in.next();
					System.out.print((i + 1) + "-Digite a altura: ");
					double altura = in.nextDouble();
					
					vetPes.insere(new Pessoa(nome, altura));// ??
				}
				break;
			case 2:
				//opcao 2 ira ordenar pelo metodo bolha
				vetPes.ordena();
				break;
			case 3:
				//ira listar pelo metodo listagem 
				vetPes.listagem();
				break;
			case 0: //para fazer o analise enquanto for diferente de 0. ?
				break;
			default:
				System.out.print("Opcao nao existe!");
				break;
			}
		} while (opcao != 0);
	}
}

Poderia analisar os comentários fernandosavio se esta de acordo, como eu comentei foi modo que procurei entender e onde eu coloquei apenas o ponto de interrogação ?? é onde está a duvida que não entendi muito bem.

muito obrigado desde já pela sua paciência de me explicar.

No guardo de suas resposta quanto ao comentários no código.

olivercld

so uma obs: no seu codigo aqui fernandosavio, depois de comentar, fui executar e quando optei pela opçao 2 que ordenar pelo metodo bolha, nao deu certo, ou seja aparece para mim o menu novamente no caso o case 2: nao esta dando certo

Criado 29 de setembro de 2011
Ultima resposta 7 de out. de 2011
Respostas 36
Participantes 5