Duvida Iniciante

Foristas, sou novo no fórum e iniciante em Java.
Meu programa nao está compilando, alguem sabe qual o erro? Nunca programei antes na vida. Dei uma lida no livro e nao achei nada,
sei que deve ser um erro simples, mas nao consigo identificar.
Agradeço desde já quem me ajudar.

[code] public void mostra()
{

	for (int i = 0;i<v.length;i++)
	{
		(lin = lin + v[i] + "  "); 
		JOptionPane.showMessageDialog(null,lin); 
		
	}

}   [/code]

Aqui o programa completo

[code]import javax.swing.*;
//importa clase

public class Busca
{
private int v[];

public Busca(int tam)
{
	v= new int[tam];
	
} 
public void mostra()
{
	//sempre o mesmo espaçamento para identar
	for (int i = 0;i<v.length;i++)
	{
		(lin = lin + v[i] + "  "); //estamos colocando as aspas no meio do programa para dar um espaço.
		JOptionPane.showMessageDialog(null,lin); //tem que sempre colocar um null e depois o lin de linha
		
	}

}

public void insere()
{
for (int i = 0;i<v.length;i++)
v[i]=Integer.parseInt(JOptionPane.showInputDialog(“entre o valor”));
}
public int buscaSeq(int valor)
{

	for(int i=0;i<v.length;i++)
		{
		if(v[i]==valor)
			{
				return i;
			}
		return -1;
		}
}

}[/code]

[quote=Peduckk] (lin = lin + v[i] + " "); [/quote]
O que é esse lin?

Amigo, olhando por cima identifiquei dois problemas.

  1. Já relatado pelo pmlm. você não declarou o lin.
(lin = lin + v[i] + "  ");
  1. o método buscaSeq deve dar problema pois não tem um return no local correto. O seu método muito provavelmente deve dar erro de compilação por não achar o return

tente colocar o código abaixo. Apenas revise para ver se está certo mesmo.

public int buscaSeq(int valor)  {  
    for(int i=0;i<v.length;i++){  
        if(v[i]==valor) {  
            return i;  
        }  
    }  
    return -1;  
}  

Espero que eu tenha ajudado.

Abraço>

Então, é um programa que faz buscas sequenciais de números dentro de um Array.
lin é para representar a linha.
o erro que dá é:
Busca.java:19: not a statement

Aqui a descrição do que o programa deveria fazer.
/* Fazer um programa que faça uma busca sequencial.
Se nao existe retorna -1
Se existe retorna o índice.

BUSCA SEQUENCIA
95 10 42 300 20
0 1 2 3 4
i i i i i

Busca

int v[]

+< busca(int tam) Instancia Vetor
+VOID MOSTRA Mostra Array
+VOID INSERE Insere dados na Tela
int buscaSeq(int valor)

outra classe, uma class

TestaBusca

+void main()

*/

Colega,

em Java assim como em outras linguagens, você deve declarar as variáveis e de preferência inicializá-las:

Por exemplo:

String s = “”;
int n = 0;

Espero ter ajudado.

Cara algumas coisas:

Primeiramente o seu programa não tem um metodo main, é só uma classe.
A não ser que vc esteja chamando ela de algum outro lugar que contenha o metodo main, é necessário coloca-lo ai.

Segundo:

(lin = lin + v[i] + "  ");

primeiro tem o erro de sintaxe, o correto seria assim:

lin = (lin + v[i] + "  ");

Segundo, essa variável é de que tipo e onde ela está sendo declarada?
Como vc esta concatenando ela com um " ", eu imagino que ela seja do tipo String, portanto faça isso:

String lin = (v[i] + "  ");

Outro ponto

	public int buscaSeq(int valor) {

		for (int i = 0; i < v.length; i++) {
			if (v[i] == valor) {
				return i;
			}
			return -1;
		}
	}

Repare que no código vc está dando um return i dentro do if que esta dentro do for.
E o return -1 também esta dentro do for, ele deve estar fora do for, porque senão ele estará dentro do escopo do for.
E o seu metodo buscaSeq vai reclamar que não tem um retorno dentro do escopo dele.
tente assim:

	public int buscaSeq(int valor) {

		for (int i = 0; i < v.length; i++) {
			if (v[i] == valor) {
				return i;
			}
			
		}
          return -1;
	}

Faz uma outra classe com um metodo main assim:


import javax.swing.JOptionPane;

public class MainTeste {
	public static void main(String[] args) {

		Busca busca = new Busca(10);

		busca.insere();
		busca.mostra();
		
		
		int buscaPorValor = busca.buscaSeq(5);
		JOptionPane.showMessageDialog(null, buscaPorValor);
		
		
	}
}

Abraços

Obrigado pela ajuda de todos, consegui compilar, agora esta dando erro no método main. :smiley:

Hildebrando Pedroni, valeu mesmo cara, então, isso é um exercício didático, o objetivo é inserir valores num array. Depois de preenchido é para checar se algum número qualquer existe dentro dele. Por exemplo, ver se o número 51 existe dentro desse Array. Então o objetivo é criar um método que percorre o Array e compara cada valor do Array com o numero 51. Se o número for encontrado é para mostra-lo na tela atravéz do JOptionPane, se nao, é para retornar o valor -1. O método main está em outra classe.

Abraços

Então faz assim ó, fica mais legal:
Class Busca

import javax.swing.JOptionPane;

//importa clase  

public class Busca {
	private int v[];

	public Busca(int tam) {
		v = new int[tam];

	}

	public void insere() {
		for (int i = 0; i < v.length; i++)
			v[i] = Integer.parseInt(JOptionPane
					.showInputDialog("entre o valor"));
	}

	public int buscaSeq(int valor) {
		for (int i = 0; i < v.length; i++) {
			if (v[i] == valor) {
				return i;
			}

		}
		return -1;
	}

	public void mostra(int valorEncontrado) {
		JOptionPane.showMessageDialog(null, "Valor Encontrado : "
				+ valorEncontrado);
	}

}

Main Class


import javax.swing.JOptionPane;

public class MainTeste {
	public static void main(String[] args) {
		Busca busca = new Busca(10);

		// Insere numeros
		busca.insere();

		int numeroBuscado = Integer.parseInt(JOptionPane
				.showInputDialog("entre o valor a ser procurado"));

		int buscaPorValor = busca.buscaSeq(numeroBuscado);
		if (buscaPorValor == -1) {
			JOptionPane.showMessageDialog(null, "Nenhum valor encontrado");
		} else {
			busca.mostra(numeroBuscado);
		}

	}
}

Mas é importante vc ver onde vc errou o resto é só deixar bonitinho.
Qualquer duvida posta ai.

Abraços