Vetor: o que há de errado com esse código?

Salve!

Vejam este código:

import java.io;

public class ExVetor
{
	public static void main (String args [])
	{
		BufferedReader entrada;
		entrada = new BufferedReader (new InputStreamReader (System.in));
		try
		{
			float soma = 0;
			float vetor [] = new float [5];
			for (int i = 0, i < vetor.length; i++;);
			{
				System.out.println ("Qual o valor?");
				vetor [i] = Float.parseFloat (entrada.readLine());
				soma = soma + vetor[i];
			}
			float media = soma / vetor.length;
			System.out.println ("A media = " + media);
		} catch (Exception e)
		{
			System.out.println ("Ocorreu um erro dutante a leitura!");
		}
	}
}

Ao compilá-lo, o JDK me dá o seguinte erro:

[code]"ExVetor.java:15: ‘;’ expected
for (int i = 0, i < vetor.length; i++;);
^
1 error

…[/code]

Alguém sabe dizer o porque deste erro? :roll:

Um forte abraço a todos,

Cara…vc colocou um “;” no final da declaração do teu for…
Retira isso q vai ficar blz…

Vlw!!!

Também pensei que fosse isso, mas não é… :roll:

Tirei o “;” do final da linha do for, tirei o “;” após o “i++” etc, e nada! (tentei algumas “permutações”…)

Onde será que estou errando?

Cara a sintaxe do for é assim:


for (int i = 0; i < vetor.length; i++)
 {

///////

}

depois do int i=0 não usa-se virgula e sim ponto e virgula.

agora estou com o seguinte problema e gostaria de ajuda se alguém poder, eu agradeço. Veja:

estou tentando passar um vetor de funcionarios para o metodo adiciona da classe Empresa. O problema é que não estou conseguindo. Eu não sei se está coerente a ideia. Eu criei uma classe funcionario com atributos, nome, rg e salario. e na classe Empresa, cnpj e um vetor para receber esses funcionarios. Eu não estou conseguindo passar os objetos criados, paulo, marcos e felipe como argumento para o vetor, na verdade consegui compilar o programa, más quando uso o System.out.println, mostra um monte de letras que não tem nada a ver. Gostaria que se alguém poder me ajudar ficarei grato. não se assustem, pois sou iniciante e estou tentando aprender. obrigado.

// Classe Empresa Apostila Calenium.

class Empresa{
String cnpj;
Funcionario funcionario[]=new Funcionario[10];

void adiciona(Funcionario f){
for (int i=0;i<funcionario.length;i++){
funcionario[i]=f;
//funcionario[i]=f;
System.out.println(funcionario[i]);
break;
}

}

}

class Funcionario{
String nome;
int rg;
double salario;

void mostra(){
System.out.println("("+salario+"\n"+rg+")");
}

}

class TestaFuncionario{

public static void main(String args[]){

Empresa ford;
ford=new Empresa();
ford.cnpj=“12589”;

//Funcionario funcionario[]=new Funcionario[10];

Funcionario paulo=new Funcionario();
paulo.salario=1000.0;
paulo.rg=123456;

ford.adiciona(paulo);
//paulo.mostra();

Funcionario marcos=new Funcionario();
marcos.salario=4000.0;
marcos.rg=1896357;

ford.adiciona(marcos);
//marcos.mostra();

Funcionario felipe=new Funcionario();
felipe.salario=2000.0;
felipe.rg=18772670;

ford.adiciona(felipe);
//felipe.mostra();

}
}

Vamos lá! vamos ver se consigo ajudar…
Primeiro no seu método:

void adiciona(Funcionario f){
for (int i=0;i<funcionario.length;i++){
  funcionario[i]=f;
  //funcionario[i]=f;
  System.out.println(funcionario[i]);
  break;
}

}

Quando você chama o System.out.println(funcionario[i]); ele vai te dizer o endereço de memória…alguma coisa com @ e creio que não é isso que você quer…ele vai te mostrar a refêrencia do objeto…entende? o ideal seria você sobrescrever a classe toString da blibioteca java.lang, ai sim…quando você chamasse o funcionario[i] ele iria mostrar a informação correta…vamos ao código, coloque ele no seu exemplo e teste e veja o resultado:

public String toString()
{
    return "mensagem que você quiser exibir aqui do funcionario";
}

Assim sendo sempre que pedir uma impressão com System.out.println(funcionario[i]) vai aparecer a mensagem que você colocar no método toString().

outra coisa…comece separando a class funcionario, e a class empresa…coloque em arquivos separados…coloque os atributos como private…entende…qualquer coisa só pedir!:slight_smile:

[quote=Jucelino Matos de Andrade] depois do int i=0 não usa-se virgula e sim ponto e virgula.
[/quote]

Cara…depende…
Se vc kiser declarar mais de 1 variavel na estrutura do for vc pode sim…ai seriam 2 variaveis com vida no escopo do for…

Vlw!!

Olá!

Além do erro na sintaxe do for (que já foi corrigido pelos outros colegas) , existe um erro no import. O correto seria :

 import java.io.*;

Um abraço!