Ajuda com erro "reached end of file while parsing"

12 respostas
Z

Boa noite a todos.

É o meu primeiro topico por isso peço desculpas.

Estou iniciando o aprendizado da linguagem JAVA e deparei-me com o seguinte erro: “reached end of file while parsing”.

Estou criando os codigos no bloco de nota e complidando atraves do JAVAC e executando pelo JAVA.

Por gentileza poderiam avaliar o meu caso.

javac Carro.java
Carro.java:30: reached end of file while parsing
}
^
1 error

class Carro {
	String cor;
	String modelo;
	double velocidadeAtual;
	double velocidadeMaxima;

	// liga o carro
	void liga() {
		System.out.println("O Carro esta ligado");
	}
	// acelara uma certa quantidade
	void acelera(double quantidade) {
		double velocidadeNova = this.velocidadeAtual + quantidade;
		this.velocidadeAtual = velocidadeNova;
	}
	// devolve a marcha do carro
	int pegaMarcha() {
		if (this.velocidadeAtual < 0){
			return -1;
		}
		if (this.velocidadeAtual >= 0 && this.velocidadeAtual < 40){
			return 1;
		}
		if (this.velocidadeAtual >=40 && this.velocidadeAtual < 80){
			return 2;
		}
		if (this.velocidadeAtual > 80){
			return 3; 
	}
}

Obs: a identação está sendo feita atraves do tab.

Desde ja agradeço a ajuda e atenção.

12 Respostas

A

nessa parte aqui.

if (this.velocidadeAtual > 80){ return 3;

você só esquece de fechar chaves -> } ^^

Z

Cara eu fechei com a chave pore agora está dando outro erro.

Carro.java:30: missing return statement
}
^
1 error

o codigo está desta forma:

class Carro {
	String cor;
	String modelo;
	double velocidadeAtual;
	double velocidadeMaxima;

	// liga o carro
	void liga() {
		System.out.println("O Carro esta ligado");
	}
	// acelara uma certa quantidade
	void acelera(double quantidade) {
		double velocidadeNova = this.velocidadeAtual + quantidade;
		this.velocidadeAtual = velocidadeNova;
	}
	// devolve a marcha do carro
	int pegaMarcha() {
		if (this.velocidadeAtual < 0){
			return -1;
		}
		if (this.velocidadeAtual >= 0 && this.velocidadeAtual < 40){
			return 1;
		}
		if (this.velocidadeAtual >=40 && this.velocidadeAtual < 80){
			return 2;
		}
		if (this.velocidadeAtual > 80){
			return 3;
		} 
	}
}

Obrigado pela ajuda.

B

O método pegaMarcha retorna um inteiro.

Esse erro dá quando você não cobre todas as possibilidades de retorno. (velocidade igual a 80)

Z

Obs: estou começando o estudo por conta propria e ainda não estou muito acostumado com estes erros.

Vou testar aqui e qualque coisa posto o resultado.

Obrigado.

EDIT

Fiz alguns testes e troquei os returns por

int pegaMarcha() {
		if (this.velocidadeAtual < 0){
			System.out.println("O Carro esta parado");
		}
		if (this.velocidadeAtual >= 0 && this.velocidadeAtual < 40){
			System.out.println("O Carro esta em primeira marcha");
		}
		if (this.velocidadeAtual >=40 && this.velocidadeAtual <= 80){
			System.out.println("O Carro esta em segunda marcha");
		}	
	}
}

Porem o erro persiste.

Obrigado a todos.

B

Err… Novamente:

O método fala que retorna um int. Portanto você deve retornar um int.

// devolve a marcha do carro
	int pegaMarcha() {
		if (this.velocidadeAtual < 0)
			return -1;

		else if (this.velocidadeAtual < 40)
			return 1;

		else if (this.velocidadeAtual < 80)
			return 2;
		
		else 
			return 3;
	}
R

Só um porém… escrever isso:

int pegaMarcha() { if (this.velocidadeAtual < 0){ System.out.println("O Carro esta parado"); } if (this.velocidadeAtual >= 0 && this.velocidadeAtual < 40){ System.out.println("O Carro esta em primeira marcha"); } if (this.velocidadeAtual >=40 && this.velocidadeAtual <= 80){ System.out.println("O Carro esta em segunda marcha"); } }

é o mesmo que escrever isso:

int pegaMarcha() { if (this.velocidadeAtual < 0){ System.out.println("O Carro esta parado"); } else if (this.velocidadeAtual < 40){ System.out.println("O Carro esta em primeira marcha"); } else if (this.velocidadeAtual <= 80){ System.out.println("O Carro esta em segunda marcha"); } }

B

Sim, mas ainda você não está retornando um inteiro como ele pede na declaração do método. Se você não quiser retornar nada, coloque o tipo de retorno como void.

Z

Ae Bruno e renamed.

Obrigado pela ajuda agora funcionou legal.

Fiz um teste e funcionou legal

Segue abaixo como ficou por inteiro.

class Carro {
	String cor;
	String modelo;
	double velocidadeAtual;
	double velocidadeMaxima;

	// liga o carro
	void liga() {
		System.out.println("O Carro esta ligado");
	}
	// acelara uma certa quantidade
	void acelera(double quantidade) {
		double velocidadeNova = this.velocidadeAtual + quantidade;
		this.velocidadeAtual = velocidadeNova;
	}
	// devolve a marcha do carro
		int pegaMarcha() {   
    		if (this.velocidadeAtual < 0)   
        	return -1;   
  
    		else if (this.velocidadeAtual < 40)   
        	return 1;   
  
    		else if (this.velocidadeAtual < 80)   
        	return 2;   
       
   		else   
       		return 3;   
	}  	
}

E

class TestaCarro{
	public static void main(String[] Args){
	Carro meuCarro;
	meuCarro = new Carro();
	meuCarro.cor = "Prata";
	meuCarro.modelo = "Celta";
	meuCarro.velocidadeAtual = 0;
	meuCarro.velocidadeMaxima = 80;
	// liga o carro
	meuCarro.liga();
	
	//Acelera o carro
	meuCarro.acelera(20);
	System.out.println(meuCarro.velocidadeAtual);
	}
}

Muito obrigado pela ajuda rapida prestada aqui.

A

Boa noite coléga.

Apenas uma pergunta. Vocês está usando alguma IDE ou fazendo isso em um bloco de notas?

Z

Ae allysonluan

eu to fazendo direto no bloco de notas?

Segundo material que eu estou suando é bom para você se acostumar com erros e você trabalhar com a tabulação e acostumar a digitar o codigo.

mais depois de um tempo vou mimgrar para alguma IDE como o eclipse ou netbenas.

Valew.

A

Pois é, bloco de notas é bom. E compilação por Console então, nem se fala!

Mas quando é para agilizar o processo da aplicação, tem que meter o pau com uma IDE, senão não da né! hehehe.

Mas eu aconselho você a utilizar uma IDE, bem como, o Eclipse mesmo, pois assim ele vai mostrando esses pequenos probleminhas de indentação e sintaxe que vão aparecendo no código. Seria bem interessante você ver isso.

Valeu cara!

Z

Pode deixar que eu vou procurar utilizar uma IDE.

Valew pelas dicas.

EDIT
Aos moderadores se queiser definir como resolvido o problema a disposição.

Criado 23 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 12
Participantes 5