Vetor

12 respostas
dudabrito

Caros Colegas, tenho uma dúvida sobre vetor.

Estou fazendo um programa onde, dependendo do valor ano um dos vetores será iniciado, como segue o exemplo abaixo:

[color=blue]

switch(ano){

case 25:

int vet[]={4,0,0,3,5,1,6,2,4};

break;

case 26:

int vet[]={5,1,1,4,6,2,0,3,5};

break;

case 27:

int vet[]={6,2,2,5,0,3,1,4,6};

break;

}

[/color]

Porém ao compilar o programa ele não permite que seja criado vários vetores com o mesmo nome porém apenas um será usado, como devo resolver esse problema ?

Att.
Eduardo Brito

12 Respostas

rodrigoallemand

int[] vet; switch(ano){ case 25: vet={4,0,0,3,5,1,6,2,4}; break; case 26: vet={5,1,1,4,6,2,0,3,5}; break; case 27: vet={6,2,2,5,0,3,1,4,6}; break; }

dudabrito

Rodrigo,

até já criei o vetor antes e até instanciei mas sempre dá esse mensagem:

[color=red]Principal.java:90: not a statement

vet[]={4,0,0,3,5,1,6,2,4};

^

Principal.java:90: ; expected

vet[]={4,0,0,3,5,1,6,2,4};
Principal.java:99: vet is already defined in

int vet[]={0,3,4,0,2,5,3,6,1};

^

Principal.java:102: vet is already defined i

int vet[]={2,5,5,1,3,6,4,0,2};

[/color]

Agradeço a ajuda.

rodrigoallemand

Veja o código… ele foi alterado…

dudabrito

Rodrigo,

eu vi o código, você inicializou o Vetor na primeira linha. Eu já fiz isso tb e não deu certo.

Pode reparar no código que coloquei no meu último post.

Agradeço.

Jorgev

O problema é que esse tipo de inicialização so funciona quando vc declara a variável, ou seja, vc só pode inicializar assim na hora que declara a variavel. Mas se vc quiser utilizar o mesmo vetor pra todos vc tem que fazer assim:

int vet[] = new int[6];   
        switch(ano){     
        case 25:     
           {   
        	   vet[0]=4;     
        	   vet[1]=5;   
        	   vet[2]=6;   
        	   break;     
           }   
        case 26:     
            vet[1]=5;     
            break;     
        case 27:     
            vet[2]=6;     
            break;

Agora se vc quiser inicializar dessa maneira que vc fez, tem que ser variaveis diferentes, mas dependendo dos laços que vc criou ai, so vai ser possivel usar essa variavel dentro desse laço. entao eu sugiro que vc faça como no exemplo acima.

Abraço

Marky.Vasconcelos

É meio POG mas pode fazer assim.

int vet[] = null;
switch(ano){ 
case 25:{
int vet2[] ={4,0,0,3,5,1,6,2,4};
vet = vet2;
break; 
}
case 26:{
int vet2[]={5,1,1,4,6,2,0,3,5};
vet = vet2;
break; 
}
case 27: {
int vet2[] ={6,2,2,5,0,3,1,4,6}; 
vet = vet2;
break; 
}
}
dudabrito

Jorge,

a questão é que eu estou com vários vetores e são grandes, se eu declarar um apenas ele aceita:
[color=blue]int vet[]={1,2,3,…200}[/color]
Agora se eu quiser vários vetores, que tenha o mesmo nome mas não que ele seja usado, apenas um será executado, ai aparece a mensagem de erro.

Fico agradecido, mas ainda buscando uma solução.

Marky.Vasconcelos

Meu código não serve?

dudabrito

Mark,

estava respondendo o nosso outro colega quando você postou.

Então, usei a mesma lógica que você colocou, com um pequeno detalhe e deu certo,

ficou poor mesmo mas a princípio atende as minhas necessidades.

[color=blue]

switch(ano){

case 25:

int vet1[]={4,0,0,3,5,1,6,2,4};

vet = vet1;	

break;

case 26:

int vet2[]={5,1,1,4,6,2,0,3,5};

vet = vet2;	

break;

case 27:

int vet3[]={6,2,2,5,0,3,1,4,6};

vet = vet3;	

break;[/color]

Muito Obrigado a Todos que puderam me ajudar, só preciso saber agora como fecha o tópico, rsss.

[]´s

felipealbuquerque

O atalho de inicialização só funciona quando tudo é feito na mesma linha, portanto o código do nosso colega não vai compilar. Exemplo:

int[] vet1 = { 4, 0, 0, 3, 5, 1, 6, 2, 4 }; // compila

int[] vet2;

vet2 = { 4, 0, 0, 3, 5, 1, 6, 2, 4 }; // erro de compilação!

Utilize arrays anônimos para a inicialização dentro do switch:

int[] vet = null;

switch (ano) {
case 25:
    vet = new int[] { 4, 0, 0, 3, 5, 1, 6, 2, 4 };
    break;
case 26:
    vet = new int[] { 5, 1, 1, 4, 6, 2, 0, 3, 5 };
    break;
case 27:
    vet = new int[] { 6, 2, 2, 5, 0, 3, 1, 4, 6 };
    break;
}
Marky.Vasconcelos

Moderadores fecham tópicos o máximo que você pode fazer é editar o assunto da primeira mensagem e colocar [RESOLVIDO]

LPJava

é nao sei qual a confusao… pq nao poe o codigo todo… de sua classe? pq as soluções acima funcionam…

Criado 17 de dezembro de 2007
Ultima resposta 17 de dez. de 2007
Respostas 12
Participantes 6