Pela descrição de cada fórum achei que esse aqui fosse o que melhor se encaixa na minha dúvida, se não for desculpe-me.
<b> outer:
for (int i=2; i<40; i++) {
for (int v=i; v>1; v–) {
if ( ((i%v) == 0) && (i!=v) ) {
//i++;
continue outer;
}
}
System.out.println(i);
}</b>
Inicialmente eu tinha feito tudo com o i++, mas o resultado do programa não era todos números primos de 0 a 40, como eu queria, mas sim os números 2 e 3. Notei que sem o i++ o programa dava o resultado que eu esperava antes. Por que? O i não seria aumentado de uma unidade apenas no final do for mais externo? Então por que utilizando-se do continue outer; para voltar ao inicio da operação o i continua sendo aumentado uma unidade?
Outra dúvida, há algum problema em iniciar as variaveis no for quando se faz loop desse tipo (com goto)?
Espero estar sendo claro nas minhas dúvidas, qualquer coisa é só perguntar. Desde já, obrigado pela ajuda.
PS: Há alguma forma melhor de colocar o código aqui no fórum? Porque do jeito que coloquei pode dificultar a leitura.
[ Esta mensagem foi editada por: aFlag em 13-07-2003 21:52 ]
Como funciona esse codigo?
A
1 Resposta
F
com o i++ o prog vai pular alguns valores para i, pois acada vez q o bloco de comandos eh executado ele jah incrementa i em 1, se vc colocar o i++ ele vai incrementar o i duas vezes causando um erro de logica, n sei se era issu q vc queria sabar, mas espero ter ajudado
Criado 13 de julho de 2003
Ultima resposta 14 de jul. de 2003
Respostas 1
Participantes 2