Onde esta o erro ( Java)?

7 respostas
M

Boa noite.

Estou tentando fazer um exercício simples e nao estou achando o erro neste simples programinha.

class Ex1

{

public static void main (String args []);    ( o erro esta aqui)

{

float nota1,nota2,media;

nota1 = 5;

nota2 = 7;

media = nota1 + nota2 / 2;

System.out.println(a média = é igual calc_media);

}

}

Bom conforme marquei acima o erro esta na linha 3 e esta escrito no java
(Missing method body or declare abstract)

7 Respostas

felipemartinsss

Tem um ‘;’ (ponto-e-vírgula) nessa linha que não deveria existir.

C

Além do erro que o colega citou acima, note isso:

float nota1,nota2,media; nota1 = 5; nota2 = 7;

O mais elegante e preciso, seria:

float nota1,nota2,media; nota1 = 5.0f; nota2 = 7.0f;

Quando você atribui um valor de ponto flutuante a uma variável, Java assume esse valor como sendo um double. Se a variável for double, beleza, mas caso seja do tipo float, é necessário fazer esse casting usando a letra “f” pra indificar que se trata de um valor float.

Caso contrário, possivelmente haverá uma mensagem de “Perda de precisão”, pois você estará tentando jogar um valor de 64 bits ( double ) dentro de um de 32 bits ( float ).

Abraço,

furutani

tira o ;

public static void main (String args [])
beginer

alguem me poderia explicar esta diferença:

public static void main (Strings[]args){ e public static void main (String args[]){

Na faculdade ensinaram a fazer a primeira forma .

C

beginer:
alguem me poderia explicar esta diferença:

public static void main (Strings[]args){ e public static void main (String args[]){

Na faculdade ensinaram a fazer a primeira forma .

Neste caso, é a mesma coisa…

Por exemplo:

String [] < variavéis >; // = Todas as variáveis declaras a frente dos colchetes serão vetores de String;

String [] ; // Apenas a variável cujo identificador está antes dos colchetes é um vetor de String;

No caso do “main”, você tem um vetor de Strings normal, então tanto faz a forma como declara…

public static void main( String vetor[] )

public static void main( String [] vetor )

Ambas corretas…

beginer

Nem sabia que estava declarar uma string de vectores, tb pensava que só se podia usar da 1,ª forma.

Quando referiam este metodo, pensava que estava apenas a declarar o metodo main .

C

beginer:
Nem sabia que estava declarar uma string de vectores, tb pensava que só se podia usar da 1,ª forma.

Quando referiam este metodo, pensava que estava apenas a declarar o metodo main .

Então, esse é um artifício muito legal pois você pode chamar seus programas Java passando valores para ele.

Se você compilar no terminal ou prompt de comando uma classe que tenha um método main como este que você postou… por exemplo, a classe Teste

javac teste.java

Quando for executála, poderá passar parâmetros separados por espaços…

java teste 10 20 30 40 50 60

no seu programa, os valores após o nome da classe serão carregados cada um em uma posição do vetor de Strings do método main;

Por exemplo:
args[ 0 ] terá o valor 10
args[ 1 ] terá o valor 20
… assim por diante.

Se a classe Teste tivesse que calcular a média dos números passados por parâmetro, seria algo assim:

public class Teste { public static void main( String args[] ) { int soma = 0; for( int i = 0; i < args.length; i++ ) { soma += Integer.parseInt( args[i] ); //Não se esqueça que tudo no args é String; } System.out.println( "A média dos valores passados por parâmetro é: " + ( soma / args.length ) ); } }

ahh! O atributo “length” dos vetores armazena a quantidade de posições que este possui!
E lembre-se, é um ATRIBUTO, não um método, como o length() da classe String, que não tem nada a ver com esse aí =)

Criado 23 de março de 2008
Ultima resposta 23 de mar. de 2008
Respostas 7
Participantes 5