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)
{
Amigo, olhando por cima identifiquei dois problemas.
Já relatado pelo pmlm. você não declarou o lin.
(lin = lin + v[i] + " ");
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;
}
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)
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);
}
}
Obrigado pela ajuda de todos, consegui compilar, agora esta dando erro no método main.
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.
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.