Executar um comando varias vezes sem o "for"

6 respostas
Lord_Cinneris

Pode parecer meio complicado mas vou tentar explicar o que se passa.
Eu preciso que o meu programa repita cada instrução um número “n” de vezes, mas não da mesma forma que um “for” faz. Por exemplo:

for(int i=0; i<n; i++){
    aux[n]=result[n];
}

for(int i=0; i<n; i++){
    result[n]=result[aux[n]];
}

for(int i=0; i<n; i++){
    System.out.print(result[n])
}

Nesse caso eu estou usando o for em cada instrução pois o meu programa não deve executar um loop completo por vez (todas as instruções devem ser repetidas “n” vezes, mas uma de cada vez). Existe um jeito mais fácil de programar isso pra que eu possa criar meu código todo dessa forma:

aux[n]=result[n];
result[n]=result[aux[n]];
System.out.print(result[n]);

E o meu programa saiba que n varia de zero até n?

6 Respostas

CintiaDR

Não seria isso, seria?

for(int i=0; i<n; i++){ aux[i]=result[i]; result[i]=result[aux[i]]; System.out.print(result[i]) }

Lord_Cinneris

Não, os comandos são repetidos um a um, não pode ser um loop comum. :wink:

maquiavelbona

for(int i =0; i<3*n;i++){ if( i<n ) aux[i]=result[i]; else if ( i<2*n ) result[i-n]=result[aux[i-n]]; else if ( i<3*n ) System.out.print(result[i-2*n]); }
Feio, mas funciona.

Até!

Lord_Cinneris

Desculpa maquiavelbona, mas a sua solução é mais complicada que a minha =P

O que eu estava pensando em fazer era criar uma classe separada que soubesse fazer cada instrução do jeito que eu quero, assim eu poderia ter um meuObjeto.Leia(aux[n], result[n]) e isso seria fácil de implementar. O problema é que eu não pretendo fazer apenas atribuições… Acho que já estou começando a ter uma ideia mas ainda não consigo enxergar bem como vai ficar. :frowning:

Odyo

Por que não usa um laço while e pergunta no final da iteração
se deseja repetir todos os passos ?

boolean continua = true;
while ( continua == true)
{
     tarefa 1;
     tarefa 2;
     tarefa 3;

     atualiza continua
}

eu ainda não entendi bem o que vc quer ...

peczenyj

Que tal assim:

public class A{
        public static void main (String [] args){
                int [] result = { 1 , 2 , 3 , 4 , 0 };
                int n = result.length;

                for(int i=0; i<n; i++){
                        System.out.println(result[result[i]]);
                }
        }
}
Criado 23 de outubro de 2007
Ultima resposta 23 de out. de 2007
Respostas 6
Participantes 5