Ajuda com erro "reached end of file while parsing"

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.

nessa parte aqui.

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

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

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.

O método pegaMarcha retorna um inteiro.

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

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.

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;
	}

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"); } }

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.

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.

Boa noite coléga.

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

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.

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!

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.