Ir para conteúdo
Fórum Script Brasil
  • 0

(RESOLVIDO)Ajuda com basico, não ta funfando =/


Scripter

Pergunta

Ola, sou iniciante no Java ainda, e to seguindo os tutoriais e documentos do Java Tutorials, baixei tudu e to lendo em sequencia, bunitim...

Resolvi da uma brincada e um treinada ao mesmo tempo, treinando um pokim de preenchimento de arrays com for e mostrar elas dpois, olhem o código:

public class TreinoForEArrays {
    public static void main(String[] args){
        System.out.println("Teste de arrays, for e classes");
        System.out.println("Array 1: Numeros de 1 a 15");
        Array array1 = new Array(1,15);
        int valorTotalArrayUm = array1.mostraTudo();
        System.out.println("\nO valor total da array é: "+valorTotalArrayUm);
        System.out.println("\nArray 2: Numeros de 16 a 30");
        Array array2 = new Array(16 ,30);
        int valorTotalArrayDois = array2.mostraTudo();
        System.out.println("\nO valor total da array é: "+valorTotalArrayDois);
    }
}

class Array {
    int numInicial;
    int numFinal;
    int[] fileira;
    int valor = 0;
    public Array(int inicial, int ultimo) {
        numInicial = inicial;
        numFinal = ultimo;
        fileira = new int[numFinal-numInicial+1];
        for(int i=0;numInicial<=numFinal;i++) {
            fileira[i] = numInicial++;        
        }
    }

    int mostraTudo() {
        System.out.println("Os valores na array são:");
        for(int j=0;j<numFinal-numInicial+1;j++) {
            System.out.println("Valor no index "+j+": "+fileira[j]);
            valor += fileira[j];
        }
        return valor;    
    }
}

Simplesmente não funciona, ele compila certinho, sem nenhum erro, mais na hora da roda, ele só mosta o seguinte:

Teste de arrays, for e classes

Array 1: Numeros de 1 a 15

Os valores na array são:

O valor total da array é: 0

Array 2: Numeros de 16 a 30

Os valores na array são:

O valor total da array é: 0

Não mostra a array... e pelo que parece ela nem é preenchida, pois o valor continua 0...

-------------------------------

Porééém, se adicionar System.out.println(fileira); ao constructor Array dentro do loop for após fileira = numInicial++; quando roda o programa retorna assim:

Teste de arrays, for e classes

Array 1: Numeros de 1 a 15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Os valores na array são:

O valor total da array é: 0

Array 2: Numeros de 16 a 30

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Os valores na array são:

O valor total da array é: 0

Significa que ele preenche a array, mais depois ele não consegue acessa-la na função mostraTudo()..., mais não deveria ter dado erro no compilamento intao??

alguém ajuda...

++++++++++++++++++EDIT+++++++++++++++++++++

Descobri o problema, mais não a solução...

a função mostraTudo() não está acessando nenhum tipo de variavel...

se colocar int seila = numFinal + numInicial;

e depois System.out.println(seila);

ele vai resultar em 0... como se não reconhecesse as variaveis fora do metodo...

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

produto resolvido, código:

public class TreinoForEArrays {
    public static void main(String[] args){
        System.out.println("Teste de arrays, for e classes");
        System.out.println("Array 1: Numeros de 1 a 15");
        Array array1 = new Array(1,15);
        array1.mostraTudo();
        System.out.println("\nArray 2: Numeros de 16 a 30");
        Array array2 = new Array(16 ,30);
        array2.mostraTudo();
    }
}

class Array {
    public int numInicial;
    public int numFinal;
    int total;    
    int[] fileira;
    public Array(int inicial, int ultimo) {
        numInicial = inicial;
        numFinal = ultimo;
        total = numFinal - numInicial + 1;
        fileira = new int[numFinal-numInicial+1];
        for(int i=0;numInicial<=numFinal;i++) {
            fileira[i] = numInicial++;                
        }
    }

    void mostraTudo() {
        System.out.println("Os valores na array são:");                
        for(int j=0;j<total;j++) {
        System.out.println("Valor no index "+j+": "+this.fileira[j]);
        }    
    }
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...